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

[Dúvida] erro no else if e no else

ola pessoal , nao entendi pq meu codigo da erro no 2 else if e no else

deixei comentado a parte que da erro

a parte do if funciona o 1 else if funciona o restante da erro de syntax error on token else delete this token


public class TesteIR {

        public static void main(String[] args) {

            double salario = 3300.0;
            double porcentagem15 = 15;
            double aliquota = (porcentagem15 / 100)  * salario  ;
            double isencao15 = aliquota - 350;
            double valorLiquidoSalario = 3300.0 - isencao15;

            System.out.println("ola, bem vindo a pg de declaração de imposto");

            if (valorLiquidoSalario >= 1900.0 || valorLiquidoSalario <= 2800.0)
            {
                System.out.println("valor de salario é " + salario);
                System.out.println("valor do imposto " + aliquota);
                System.out.println("valor de insenção é " + isencao15);
                System.out.println("valor de salario liquido " + valorLiquidoSalario);
            }

            else if(valorLiquidoSalario >= 2800.01 || valorLiquidoSalario >= 3751.0);
            {    
                System.out.println("valor de salario é " + salario);
                System.out.println("valor do imposto " + aliquota);
                System.out.println("valor de insenção é " + isencao15);
                System.out.println("valor de salario liquido " + valorLiquidoSalario);
            }    

            // syntax error on token else delete this token  ,  nao entendi pq da erro
            else if(valorLiquidoSalario >= 3751.01 || valorLiquidoSalario >= 4664.0);{ 
                System.out.println("valor de salario é " + salario);
                System.out.println("valor do imposto " + aliquota);
                System.out.println("valor de insenção é " + isencao15);
                System.out.println("valor de salario liquido " + valorLiquidoSalario);
            }

            //  syntax error on token else delete this token  mesma mensagem   nao entendi pq da erro 
            else {
                System.out.println("salario nao pertence a tabela de calculos");
            }        

        }
}
2 respostas
solução!

Boa tarde Rafael, tudo bem ?

Primeiramente parabéns pelo esforço de fazer nossos desafios!

Respondendo a sua dúvida.

No trecho abaixo, você colocou " ; " antes da abertura das " { " dos dois "else if". Essa parte que está com erro na compilação.

else if(valorLiquidoSalario >= 2800.01 || valorLiquidoSalario >= 3751.0);  // **<---  AQUI**
            {    
                System.out.println("valor de salario é " + salario);
                System.out.println("valor do imposto " + aliquota);
                System.out.println("valor de insenção é " + isencao15);
                System.out.println("valor de salario liquido " + valorLiquidoSalario);
            }    

            // syntax error on token else delete this token  ,  nao entendi pq da erro
            else if(valorLiquidoSalario >= 3751.01 || valorLiquidoSalario >= 4664.0);   //** <---  AQUI**
            { 
                System.out.println("valor de salario é " + salario);
                System.out.println("valor do imposto " + aliquota);
                System.out.println("valor de insenção é " + isencao15);
                System.out.println("valor de salario liquido " + valorLiquidoSalario);
            }

Outro ponto são as condicionais dos " else if" estão cobrindo o mesmo range de salario.

Nesse está entre 2800.01 ou maior igual a 3751.0.

else if(valorLiquidoSalario >= 2800.01 || valorLiquidoSalario >= 3751.0)

Nesse está entre 3751.01 ou maior igual a 4664.0.

 else if(valorLiquidoSalario >= 3751.01 || valorLiquidoSalario >= 4664.0)

Além desses pontos o desconto está fixo em 15%, o exercício tem alguns percentuais de desconto conforme o salário informado.

Você está caminhando muito bem, continue assim!

Qualquer dúvida, estamos à disposição.

obrigado pelas dicas :)