1
resposta

Exercício declaração de IR com consistências nas condicionais

public class TesteIR {

    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 = 5000;

        if (salario >= 1900.0 && salario < 2800.0) {
            System.out.println("Pode deduzir declaração de IR no valor de R$ 142,00");
        } else {
            if (salario >= 2800.01 && salario < 3751.0) {
                System.out.println("Pode deduzir declaração de IR no valor de R$ 350,00");
            } else {
                if (salario >= 3751.01 && salario < 4664.00) {
                    System.out.println("Pode-se deduzir declaração de IR no valor de R$ 636,00");
                } else {
                    if (salario < 1900.0) {
                        System.out.println("Você está isento da declaração de IR");
                    } else {
                        System.out.println("Consulte a tabela no site da Receita Federal!");
                    }
                }
            }
        }

    }

}

Caso o salário da pessoa seja menor que R$ 1900.00 ou maior que R$ 4664.00, o programinha da resolução não exibe resposta. Adicionei mais duas condicionais no ultimo if, caso o salario < 1900.0 e deixei como default o else, ou seja, o valor possível salario > 4664.0. De cara já pensei nas consistências das condicionais. De tanto meu professor me cobrar !

1 resposta

@Paulo Roberto Sousa de Oliveira

Poderia verificar novamente por favor? Vi que a lógica desses ifs encadeados está correta e deveria retornar o resultado esperado. Copiei seu código e executei o método na minha ide e deu certo: apareceu mensagem se < 1900 e se > 4664