3
respostas

Algum comentário sobre a melhoria do código que escrevi, ainda nesta fase inicial de programação?

public class TesteIR {

public static void main(String args[]) {

    // declaração de variáveis e atribuição de valores
    double salarioBruto     = 3300.0;
    double salarioDepoisIR  = 0.0;
    double deducao          = 0.0;

    // Imprime o salário bruto
    System.out.print("Salário Bruto: R$");
    System.out.println(salarioBruto);

    /* 
        Teste condicional que trata a isenção ou dedução de valores referen
        -te ao imposto de Renda(IR).
    */
    if (salarioBruto < 1900.00) {
        salarioDepoisIR = salarioBruto;
    } else if (salarioBruto >= 1900.00 || salarioBruto <= 2800.00) {
        deducao = 142.8;
        salarioDepoisIR = salarioBruto - deducao;
    } else if (salarioBruto >= 2800.01 || salarioBruto <= 3751.00) {
        deducao = 354.8;
        salarioDepoisIR = salarioBruto - deducao;
    } else if (salarioBruto >= 3751.01 || salarioBruto <= 4664.00) {
        deducao = 636.13;
        salarioDepoisIR = salarioBruto - deducao;
    } else if (salarioBruto > 4664.00) {
        deducao = 869.36;
        salarioDepoisIR = salarioBruto - deducao;
    }

    /* 
       Teste condicional que trata a exibição de mensagens com base na 
       dedução de valores do salário bruto. 
       Caso o valor a ser deduzido seja maior do que 0 (zero), é informado o 
       o salário bruto, jutamente com o valor deduzido e o salário depois do
       IR.
    */
    if(deducao > 0.0){
        System.out.print("Valor deduzido: R$");
        System.out.print(deducao);

        System.out.println("");

        System.out.print("Salário depois do IR: R$");
        System.out.print(salarioDepoisIR);

        System.out.println("");
    }else{
        System.out.print("Valor insento de IR.");

    }
 }

}

3 respostas

Rodrigo, boa tarde!

O código está ótimo parabéns, está bem claro o que cada parte está fazendo, além disso está muito bem comentado (Existem devs que dizem que não se deve comentar código, eu pessoalmente acredito que pra aprendizado é totalmente válido), a única coisa que eu alteraria é o ultimo else if:

 else if (salarioBruto > 4664.00) {
        deducao = 869.36;
        salarioDepoisIR = salarioBruto - deducao;
    }

Que pode ser só um else pois não existe nenhuma outra opção

 else {
        deducao = 869.36;
        salarioDepoisIR = salarioBruto - deducao;
    }

Continue assim e bons estudos!

Verdade, Felipe Moreno Borges! Obrigado pela dica. abs

Na verdade a "lógica" da dedução não está correta! Dedução não é o mesmo que desconto, como eu havia pensado. Mas, agradeço o comentário, Felipe!