1
resposta

É possível ajustar esse código de forma que não use tantas variáveis repetidas para cada if? não estou enxergando como rs

import java.text.DecimalFormat;

public class praticandoCondicionais2 {

public static void main (String[] arc) {

    double salario = 2500.0;
    double porcentagemImposto = 0;

    if (salario <= 1903.98) {

        porcentagemImposto = 0;
        double aliquota = porcentagemImposto / 100;
        System.out.println("Você é isento de pagamento do imposto.");
    }

    if (salario <= 2826.65 && salario >= 1903.99) {

        porcentagemImposto = 7.5;
        double aliquota = porcentagemImposto / 100;
        double imposto = salario * aliquota - 142.80;
        System.out.println("A alíquota aplicada foi de 7.5%, então deverá ser pago R$" + 
                new DecimalFormat("#,##0.00").format(imposto));

    }

    if (salario <= 3751.06 && salario >= 2826.66) {

        porcentagemImposto = 15;
        double aliquota = porcentagemImposto / 100;
        double imposto = salario * aliquota - 354.80;
        System.out.println("A alíquota aplicada foi de 15%, então deverá ser pago R$" + 
                new DecimalFormat("#,##0.00").format(imposto));
    }

    if (salario <= 4664.68 && salario >= 3751.07) {

        porcentagemImposto = 22.5;
        double aliquota = porcentagemImposto / 100;
        double imposto = salario * aliquota - 636.13;
        System.out.println("A alíquota aplicada foi de 22.5%, então deverá ser pago R$" + 
                new DecimalFormat("#,##0.00").format(imposto));
    }

    if (salario >= 4664.69) {

        porcentagemImposto = 27.5;
        double aliquota = porcentagemImposto / 100;
        double imposto = salario * aliquota - 869.36;
        System.out.println("A alíquota aplicada foi de 27.5%, então deverá ser pago R$" + 
                new DecimalFormat("#,##0.00").format(imposto));
                //Fiz uso de um recurso para arredondar o resultado que pesquisei na internet
    }

}

}

1 resposta

Boa tarde, Patrick. Segue a minha solução do problema.

public class AliquotaIfs {
    public static void main(String[] args) {
        double salario = 3300.0;

        double percentualIR = 0.00;
        double valorDeduzir = 0.00;

        if ((salario >= 19000) && ( salario <= 28000)) {
            percentualIR = 7.5;
            valorDeduzir = 142;
        } else if (salario <= 3751) {
            percentualIR = 15;
            valorDeduzir = 350;
        } else if (salario <= 4664 ) {
            percentualIR = 22.5;
            valorDeduzir = 636;
        }

        System.out.println("O seu percentual de IR é: " + percentualIR + "%");
        System.out.println("O valor a ser deduzido é R$ " + valorDeduzir);            
    }
}