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

Resolução do exercicio apresentado

Existe algo nesse código para otimizar ou facilitar sua escrita?

public class Exercicio { public static void main(String[] args) { double salario = 3300.0; if(salario > 1900 && salario < 2800) { System.out.println("o IR é de 7.5% e pode deduzir na declaração o valor de R$ 142"); } if(salario > 2801 && salario < 3750 ) { System.out.println("o IR é de 15% e pode deduzir R$ 350"); }else { System.out.println("o IR é de 22.5% e pode deduzir R$ 636"); } } }

4 respostas
solução!

Então, esse é um código de primeiros passos, a forma como esse código foi feito é a ideal para quem está iniciando o aprendizado. Só colocaria um else if.

Quando você aprender mais, você vai ver outras formas de fazer esse mesmo código: Vai usar Enum e talvez o padrão de projetos Strategy.

Falando de lógica, que é o mais importante agora, seu código está errado. Experimente colocar o salário como 1000.0 reais, seu código vai dizer que ele tem que pagar 22.5%. Resolve isso.

Olá João,

Para a linha 6 do seu código, você pode alterar para "else if", para deixar mais claro na sintaxe.

} else if (salario > 2801 && salario < 3750) {
            System.out.println("o IR é de 15% e pode deduzir R$ 350");

Você também poderia utilizar uma função para realizar a construção do texto, mas acredito que seria um tópico um pouco mais avançado.

Acho que o bacana seria inserir uma linha informando da isenção de IR para os casos abaixo dos 1900.

if (salario <= 1900) {
            System.out.println("Isento");

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

    double aliquota1 = 7.5;
    double aliquota2 = 15.0;
    double aliquota3 = 22.5;
    double aliquota4 = 27.5;

    double salario = 4664.68;
    double resultado;


    if (salario <= 1903.98) {
        System.out.println("Isento do Imposto de Renda");
        System.out.println("Sem Calculo!");
    }
    if (salario >= 1903.99 && salario <= 2826.64) {
        System.out.println("Sua aliquota do Imposto de Renda é : " + aliquota1);
        resultado=(salario*7.5)/100;
        System.out.println("Valor Mensal à Pagar = "+ resultado);
    }
    if (salario >= 2826.65 && salario <= 3751.04) {
        System.out.println("Sua aliquota do Imposto de Renda é: " + aliquota2);
        resultado=(salario*15)/100;
        System.out.println("Valor Mensal à Pagar = "+ resultado);
    }
    if (salario >= 3751.05 && salario <= 4664.67) {
        System.out.println("Sua aliquota do Imposto de Renda é: " + aliquota3);
        resultado=(salario*22.5)/100;
        System.out.println("Valor Mensal à Pagar = "+ resultado);

    }
    if (salario >= 4664.68) {
        System.out.println("Sua aliquota do Imposto de renda é: " + aliquota4);
        resultado=(salario*27.5)/100;
        System.out.println("Valor Mensal à Pagar = "+ resultado);

    }

}

}