2
respostas

Imprimindo resposta de IF e resposta de ELSE

boa tarde! por gentileza, antes de visualizara resposta do exercício eu desenvolvi esse código, porém em qualquer circunstancia ele imprime a frase de algum dos IF e em todas também imprime a do else. Porquê está acontecendo isso?

package variaveisefluxo;

public class TestaFlutuante {

public static void main(String[] args) {

    double salario = 2000.0;

    // ifs aqui

    if (salario >= 1900 && salario <= 2800) {
        System.out.println("Você deve pagar 7.5%");

    }
    if (salario > 2800 && salario <= 3751) {
        System.out.println("Você deve pagar 15% de imposto");
    }
    if (salario > 3751 && salario <= 4664) {
        System.out.println("Você vai pagar 22.5%");
    }
    if (salario > 4664) {
        System.out.println("Você vai pagar 27.5% de imposto");
    }
    else {
        System.out.println("Você é isento de pagar IR");
    }
}

}

2 respostas

Olá Paulo, boa tarde! Este problema ocorre devido ao mau encadeamento dos if's. Pelo que entendi, você queria que o print do "Você é isento de pagar IR", ocorresse apenas se todas as outras condições não fossem válidas, porém o que está ocorrendo é que esse else é referente a condição salario > 4664.

Portanto, como o salario = 2000, ele entra na primeira condição. No entanto, o salário não é maior que 4664, logo a condição de else passa a ser válida.

Espero que ter ajudado. Boa sorte nos estudos.

Ahh isso mesmo, muito obrigado Isabela