3
respostas

Enunciado e respostas confusos

Não deveria ter um else? Se os dois testes forem verdadeiros vai entrar nos dois, além disso o programa imprime só um comando do primeiro if, se entrasse nele, imprimiria os dois. Mas, pelos valores, não entra. Mesmo com as chaves, conforme a resposta dada como correta, continua acontecendo a mesma coisa.

3 respostas

Fala ai Carolina, tudo bem? Vamos lá:

Não deveria ter um else?

Na verdade falta adicionar as chaves dos if's, ou seja, {}.

Olhando o código:

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");

Os if's serão aplicados apenas no primeiro console.log, nesse caso, ao testar o código com o valor 3300 ele não entra no primeiro if, ou seja, não vai imprimir a primeira linha: console.log("A sua aliquota é de 15%");.

Mas a segunda linha será impressa, no caso: console.log("Você pode deduzir até R$ 350");.

No segundo if ele vai entrar nele e será logado o primeiro console + o segundo.

Isso porque if's sem chaves apenas aplicam a condicional na primeira linha após sua declaração.

Se o mesmo tiver mais de uma linha a gente precisa adicionar as chaves:

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");
}

Agora a condição será aplicada para todo o corpo do mesmo.

Espero ter ajudado.

Obrigada, ajudou sim!! Tinha esquecido a parte de só a primeira linha ficar dentro do if, quando sem chaves.

Magina Carolina, sempre que precisar não deixe de criar suas dúvidas.

Abraços e bons estudos.