1
resposta

Aliquota com Ifs: Minha Resolução

Segue a minha solução para o problema Alíquota com Ifs:

package sintaxeVariaveisFluxo;

public class AliquotaComIfs {

    public static void main(String[] args) {

        /*
         * Exercício Alura para cálculo de alíquota do IR utilizando ifs
         */

        /*
         * Valores obtidos da internet no dia 14/02/2023 as 16:30
         */

        double salario = 3300.0;
        double imposto = 0.0;
        double deducao = 0.0;
        double taxaIR = 0.0;

        if(salario >= 1903.99 && salario <= 2826.65) {
            taxaIR = 7.5;
            deducao = 142.8;
        } else {
            if(salario >= 2826.66 && salario <= 3751.05) {
                taxaIR = 15.0;
                deducao = 354.8;
            } else {
                if(salario >= 3751.06 && salario <= 4664.68) {
                    taxaIR = 22.5;
                    deducao = 636.13;
                } else {
                    if(salario > 4664.69) {
                        taxaIR = 27.5;
                        deducao = 869.36;
                    }                    
                }
            }
        }

        imposto = (salario * taxaIR) / 100;

        System.out.println("O seu salário é de: R$ " + salario);

        if(salario < 1903.99  || (imposto - deducao) < 10.0) {
            System.out.println("Você está isento do Imposto de Renda");
        } else {
            System.out.println("A sua taxa de IR é de: " + taxaIR + "%");
            System.out.println("O seu imposto é de: R$ " + imposto);
            System.out.println("A sua deducao é de: R$ " + deducao);
            System.out.println("Total a pagar: R$: " + (imposto - deducao));
        }
    }
}
1 resposta

Fala José, tudo certo?

Muito legal a sua solução, ficou show!

Outra maneira de fazer é utilizando a estrutura if-elseif-else que vai tirar um nível de identação do código e deixar ele um pouquinho mais legível, algo como:

 if(salario >= 1900.0 && salario <= 2800.0) {
            System.out.println("A sua aliquota é de 7,5%");
            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");
}

Assim, evitamos de aninhar muitos blocos de código!

Um grande abraço e bons estudos!