Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Porque usar o || em vez do && não funciona?

public class AjudandoJoao {

public static void main(String[] args) {
    double salario =3800.0;

    if (salario>= 1900.00 && 2800.00>=salario) {
        System.out.println("Voce pode reduzir sua declaração em R$142,00");
    }
    else if (salario>= 2800.01 && 3751.00>=salario) {
            System.out.println("Voce pode reduzir sua declaração em R$350,00");
            }
    else if (salario>= 3751.01 && 4664.00>=salario) {
                System.out.println("Voce pode reduzir sua declaração em R$636,00");

            }    
    }

}

2 respostas

Funcionaria também

solução!

Fala Matheus! Tudo bem?

No caso desse seu exemplo a ideia do código é definir qual será a a dedução com base no salário, e a tabela de dedução é com base em um range do salário, ou seja, se teu salário X estiver entre A e B a dedução é Y. A tabela é algo do tipo:

Salário inicial Salário FinalDedução
1900,00 2800,00142,00
2800,013751,00350,00
3751,01 4664,00 636,00

Dado esse cenário, você está utilizando o && porque você quer que seu salário 3800,00 atenda as duas condições, ou seja, ele deve ser "maior ou igual" a 1900,00 "E" "menor ou igual" a 2800,00 e assim sucessivamente conforme as outras faixas da tabela.

Se você alterar o seu "&&" por um "||" você estará dizendo que seu salário deve ser "maior ou igual" a 1900,00 "OU" "menor ou igual a 2800,00. Note que se utilizar o OU um salário de 1000,00 também cairia na dedução de 142,00 porque 1000,00 é menor que 2800,00.