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

Resolução do exercício proposto

Olá, pessoal! Tudo bem?

Segue a resolução do exercício proposto. Tem algo que possa ser melhorado nesse código?

public class TesteIR {

    public static void main(String[] args) {

        double salario = 1000.0;

        if(salario >= 1900 && salario < 2800) {
            salario -= 142;
            System.out.println("A sua aliquota é de 7%");
            System.out.println("R$142 deduzidos. Salário com dedução: " + salario);
        } else if(salario >= 2800 && salario < 3751) {
            salario -= 350;
            System.out.println("A sua aliquota é de 15%");
            System.out.println("R$350 deduzidos. Salário com dedução: " + salario);
        } else if (salario >= 3751 && salario <= 4664){
            salario -= 636;
            System.out.println("A sua aliquota é de 22.5%");
            System.out.println("R$636 deduzidos. Salário com dedução: " + salario);
        } else {
            System.out.println("Você é isento de imposto de renda.");
        }
    }
}
2 respostas
solução!

Olá Bruno, tudo bem com você?

Talvez implementar o código usando o switch? Sinceramente, não tem muito o que melhorar aqui. Alguns recursos do Java 8/9 como expressões lambdas e o Optional podem substituir um ou dois ifs, mas mais do que isso já afetaria a legibilidade do código.

Enfim, continue assim. No momento, o switch seria a melhor opção! :)

Se precisar estou à disposição!

Abraços e bons estudos!!

Olá, Bruno, bom trabalho, se você quer melhorar seu código, você pode criar um método para a "impressão", passando %, valor reduzido e salário já calculado, diminuirá a repetição de código, algo requisitado hoje em dia. Outro ponto, mas o exercício não trata, é que o salário será isento se for acima 4664 também.