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

Esta certo assim?


public class tarefa {

    public static void main(String[] args) {
        // De 1900.0 até 2800.0, o IR é de 7.5% e pode deduzir na declaração o valor de
        // R$ 142
        // De 2800.01 até 3751.0, o IR é de 15% e pode deduzir R$ 350
        // De 3751.01 até 4664.00, o IR é de 22.5% e pode deduzir R$ 636
        double salario = 3000;{
            if (salario <= 1900.0)
                System.out.println("Voce esta incento de imposto");
        }
        if (salario > 1900.0 && salario <= 2800.0) {
            System.out.println("Seu Imposto de renda é de 7.5%");
            System.out.println("E sua restituição sera de até R$142");
        }
        if (salario > 2800.00 && salario <= 3751.0) {
            System.out.println("Seu IR é de 15%");
            System.out.println("E sua restituição sera de até R$ 350");
        } 
        if (salario > 3751.01 && salario <=4664.00) {
            System.out.println("Seu imposto de renda é de 22.5%");
            System.out.println("E sua restituição sera de até R$636");
        }

    }
}
2 respostas
solução!

Só essa regra que ficou errada:

De 1900.0 até 2800.0, o IR é de 7.5% e pode deduzir na declaração o valor de R$ 142

teria que ser salario >= 1900.0

if (salario >= 1900.0 && salario <= 2800.0) {

Tendo em vista que se uma condição for verdadeira, o compilador não vai verificar nenhuma outra condição do if, a lógica poderia ficar assim:

if (salario < 1900.0) {
    System.out.println("Voce esta isento de imposto");
} else if (salario <= 2800.0) {
    System.out.println("Seu Imposto de renda é de 7.5%");
    System.out.println("E sua restituição sera de até R$142");
} else if  (salario <= 3751.0) {
    System.out.println("Seu IR é de 15%");
    System.out.println("E sua restituição sera de até R$ 350");
} else if (salario <= 4664.00) {
    System.out.println("Seu imposto de renda é de 22.5%");
    System.out.println("E sua restituição sera de até R$636");
}