Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

é possível usar o switch com boolean como no exemplo abaixo?

como aplicar o switch no exemplo abaixo:

public class TesteIR2 {

public static void main(String[] args) {

    double salario = 3300.0;

    if(salario >= 1900.0 && salario <= 2800.0) {
        System.out.println("A sua aliquota é de 7%");
        System.out.println("Você pode deduzir até R$ 142");
    } else if(salario >= 2800.01 && salario <= 3751.0) {
        System.out.println("A sua aliquota é de 15%");
        System.out.println("Você pode deduzir até R$ 350");
    } else if(salario >= 3751.01 && salario <= 4664.0) {
        System.out.println("A sua aliquota é de 22.5%");
        System.out.println("Você pode deduzir até R$ 636");
    }
}

}

1 resposta
solução!

Oie Paulo, tudo bem contigo?

Infelizmente o switch-case não permite usar boolean, apenas "String", "int" e "enum", por isso a única coisa que dária para fazer nesse código é adaptar para ser aceito no escopo do switch-case. Eu achei uma discussão muito boa no stackoverflow onde é feito essa adaptação, se quiser dar uma olhada clique aqui.

Também fiz as alterações necessários no seu código:

public static void main(String[] args) {

        double salario = 3300.0;

        String status = "";

        if(salario >= 1900.0 && salario <= 2800.0 ) {
            status = "7%";
        } else if (salario >= 2800.01 && salario <= 3751.0) {
            status = "15%";
        } else if (salario >= 3751.01 && salario <= 4664.0) {
            status = "22.5%";
        }

        switch (status) {
        case "7%":
            System.out.println("A sua aliquota é de 7%");
            System.out.println("Você pode deduzir até R$ 142");
            break;
        case "15%":    
            System.out.println("A sua aliquota é de 15%");
            System.out.println("Você pode deduzir até R$ 350");
            break;    
        case "22.5%":
            System.out.println("A sua aliquota é de 22.5%");
            System.out.println("Você pode deduzir até R$ 636");
            break;
        default:
            System.out.println("Não existe essa opção!");
            break;
        }
}

Espero ter ajudado, qualquer outra dúvida fico a disposição :)

Bons estudos!