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

Um erro?

Nesse código de uma possível solução:

public class TesteIR2 {

    public static void main(String[] args) {

        // De 1900.0 até 2800.0 o IR é de 7.5% e pode deduzir 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 = 3300.0;

        if(salario >= 1900.0 && salario <= 2800.0) {
            System.out.println("A sua aliquota é de 7%");
            System.out.println("Você pode deduzir até R$ 142");
        } else if(salario >= 2800.01 && salario <= 3751.0) {
            System.out.println("A sua aliquota é de 15%");
            System.out.println("Você pode deduzir até R$ 350");
        } else if(salario >= 3751.01 && salario <= 4664.0) {
            System.out.println("A sua aliquota é de 22.5%");
            System.out.println("Você pode deduzir até R$ 636");
        }
    }
}

acho que há um erro. Se o salário for MENOR que 1900.0 ou MAIOR que 4664.0, ele não atende a nenhuma condição e o programa termina sem nenhuma informação ao usuário. Seria melhor começar com um if para esse caso (ou terminar, tanto faz)?

2 respostas
solução!

Oi Luiz

Você está certo sim. Uma possibilidade é adicionar um else no final das verificações e caso o valor não atenda nenhuma das condições, ele entrará na última.

Ex:

        if(salario >= 1900.0 && salario <= 2800.0) {
            System.out.println("A sua aliquota é de 7%");
            System.out.println("Você pode deduzir até R$ 142");
        } else if(salario >= 2800.01 && salario <= 3751.0) {
            System.out.println("A sua aliquota é de 15%");
            System.out.println("Você pode deduzir até R$ 350");
        } else if(salario >= 3751.01 && salario <= 4664.0) {
            System.out.println("A sua aliquota é de 22.5%");
            System.out.println("Você pode deduzir até R$ 636");
        } else {
            System.out.println("Você não teve deduções!");
        }

Beleza, Daniel, valeu!!! Sua solução foi ainda melhor do que eu havia pensado. Muito obrigado!