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

não deu certo :(

Eu fiz o código usando "||" e não deu certo. mas quando eu usei o "&&" funcionou. Porque? Alguém poderia me explicar. Desde já agradeço.

6 respostas

Olá Sérgio, tudo certo?

Você pode colocar o código que você usou o "||" para tentarmos ver o que pode estar errado?

Basta clicar no botão inserir código e colocar ele aqui.

public class TesteIR {

    public static void main(String[] args) {
        System.out.println("Declaração de Imposto de renda.");

        double salario = 2880.0;

        if (salario >= 1900.0 || salario <= 2800.0) {
            System.out.println("Sua aliquota desse ano é de 7.5%= R$142.00");

        } else if (salario >= 2800.01 || salario <= 3751.0) {
            System.out.println("Sua aliquota desse ano é de 15%= R$350.00");

        } else if (salario >= 3751.01 || salario <= 4664.0) {
            System.out.println("Sua aliquota desse ano é de 22.5%= R$636.00");

        } else
            System.out.println("Isento do IR");

        }

    }

}

Olá Sérgio.

Vi aqui que você esqueceu de abrir as chaves no último else, por isso o erro de compilação.

Espero ter ajudado.

Mas ai que tah. Esse ultimo else não esta influenciando em nada quando compila. Pode fazer o teste sem ele por exemplo. E foi justamente o que eu fiz. E quando eu coloco esse mesmo codigo com o "&&" , da certo.

Sergio,

Esse seu erro seria o que exatamente?

Um erro que de lógica (saiu um valor que você não esperava)

ou

Um erro de compilação (o código não executou)

De qualquer forma mostre o que saiu no console ao executar o seu código.

solução!

Opa Sérgio, acho que entendi a sua dúvida.

De acordo com o valor da variável salário, era de se esperar que o valor impresso fosse o da alíquota de 15%, só que ele imprime a alíquota de 7,5%. Esse seu exemplo ele só fuciona se for utilizado o operador 'E' (&&), pois as duas condições tem que ser verdadeiras para que o if seja verdadeiro. No caso do operador 'OU' ||, apenas umas das opções tem que ser verdadeira para que o if seja verdadeiro.

No seu exemplo, quando utilizado o || , o 'salario >= 1900.0' já é verdadeiro, então a condição está satisfeita, portanto é realizada.

Resumindo, o erro não está na compilação, mas sim do jeito que você escreveu ele.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software