2
respostas

Resultado Teste IR

Consegui chegar até aqui.

public class Teste { public static void main(String[] args) {

    double salario = 3300.0;
    double aliquota = 1;
    double deducao = 0;


    if (salario >= 1900 && salario < 2000) {
        aliquota = aliquota * 7.5;
        deducao = deducao + 142;
        double valorIR = ((salario - deducao) * aliquota)/100;
        System.out.println("O valor a ser pago é R$ " + valorIR);
    } else {

        if (salario >= 2000 && salario < 3751) {
            aliquota = aliquota * 15;
            deducao =  deducao + 350;
            double valorIR = ((salario - deducao) * aliquota)/100;
            System.out.println("O valor a ser pago é R$ " + valorIR);
        } else {

            if (salario >= 3751 && salario < 4664) {
                aliquota = aliquota * 22.5;
                deducao =  deducao + 636;                
                double valorIR = ((salario - deducao) * aliquota)/100;
                System.out.println("O valor a ser pago é R$ " + valorIR);
            }
        }
    }
}

}

2 respostas

Olá, dei uma olhada no seu código, ele funciona muito bem. Mas notei que você realiza a uma operação a cada "if" para atualizar as variáveis aliquota e deducao:

aliquota = aliquota * 22.5;
 deducao =  deducao + 636;

O que você poderia fazer era declarar as variáveis antes de iniciar a serie de "if's" e agregar o valor de cada dentro deles, assim deixando o código mais sucinto, ao meu ver. Da mesma forma o valorIR. Segue o que eu fiz:

public class IRAluno {

    public static void main(String[] args) {

        //Declaração das variáveis
        double salario = 3300.0;
        double aliquota;
        double deducao;
        double valorIR;

        //Inicio dos IF's
        if (salario >= 1900 && salario < 2000) {
            aliquota = 7.5; //atribuindo o valor a aliquiota de 7.5%
            deducao = 142; //atribuindo o valor da dedução de R$ 142
            valorIR = ((salario - deducao) * aliquota) / 100;
            System.out.println("O valor a ser pago é R$ " + valorIR);
        } else {

            if (salario >= 2000 && salario < 3751) {
                aliquota = 15; //atribuindo o valor a aliquiota de 15%
                deducao = 350; //atribuindo o valor da dedução de R$ 350
                valorIR = ((salario - deducao) * aliquota) / 100;
                System.out.println("O valor a ser pago é R$ " + valorIR);
            } else {

                if (salario >= 3751 && salario < 4664) {
                    aliquota = 22.5; //atribuindo o valor a aliquiota de 22.5%
                    deducao = 636; //atribuindo o valor da dedução de R$ 636
                    valorIR = ((salario - deducao) * aliquota) / 100;
                    System.out.println("O valor a ser pago é R$ " + valorIR);
                }
            }
        }
    }
}

Fabiano, Bom dia !

Tem razão. Fica mais claro assim !

Muito Obrigada !

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