1
resposta

02 Trabalhando com if

insira seu código aqui

insira seu código aqui

O exercício 2 ainda está com problema e a resposta fica confusa, pois se o salário for menor que 2600.0 ele imprime os 2 impostos.

public class TestaCondicional {

public static void main(String[] args) {
     double salario = 2500.0;

       if(salario < 2600.0) {
            System.out.println("A sua aliquota é de 15%");
            System.out.println("Você pode deduzir R$ 350");
        }
        if(salario < 3750.0) {
            System.out.println("A sua aliquota é de 22,5%");
            System.out.println("Você pode deduzir R$ 636");
        }
}

}

console: A sua aliquota é de 15% Você pode deduzir R$ 350 A sua aliquota é de 22,5% Você pode deduzir R$ 636

Não seria mais correto escrever assim nesse trecho?

    if(salario <= 2600.0) {
            System.out.println("A sua aliquota é de 15%");
            System.out.println("Você pode deduzir R$ 350");
        }

        if(salario > 2600.0) {
            System.out.println("A sua aliquota é de 22,5%");
            System.out.println("Você pode deduzir R$ 636");
1 resposta

João, tudo bom?

Na verdade a alternativa da questão está correta, e a sua também.

No exercício ele deixa claro que só está implementando as duas regras, de 15% e 22.5%. Sendo que a primeira para valores abaixo de 2600 e a segunda para valores abaixo de 3750.

O problema está quando um valor está nas duas regras, como é o caso do seu exemplo: 2500. Ele tanto está enquadrado na taxa de 15% quanto na de 22.5%. No exemplo dado no exercício, 3300, isso não acontece.

Tem algumas formas de contemplar isso, mas não sei se foi a intenção de quem fez a questão. De qualquer forma, a questão ficou com furos e causou dúvidas. Seria mais adequado melhorar o enunciado.

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