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

Erro na questão

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

O código exibirá duas mensagens mesmo se houver as chaves, pois quando o salário é menor que 2600 as duas condições são satisfeitas.

Não sei se isso é alguma regra do IR, pois se realmente for feito desta maneira a alíquota total será de 40,87% do salário. Desta forma, quem tiver um salário menor que R$2600 terá uma alíquota maior e isso não faz sentido algum.

Sendo assim, a forma correta do código seria a seguinte:

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

Acima, a segunda condição é executada somente se a primeira for falsa, evitando o erro no resultado final.

2 respostas

Fala ai Mateus, tudo bem? Acho que passou despercebido pela gente durante a criação dos exercícios.

Vou passar para o pessoal.

Abraços e bons estudos.

solução!

OI Mateus tudo certo?

Nesse caso o instrutor usou um cenário super específico onde só existe a verificação daquele salário, mas com certeza, sua solução funciona perfeitamente quando a gente pensa em evolução do código para um que ele aceite qualquer valor de salário .

Muito obrigado pelo feedback :)