Condicionais else if: mais opções para suas decisões
Aprenda a encadear várias condições para cobrir diferentes cenários.
Na lição anterior, aprendemos a tomar decisões simples com if (se) e else (senão). Mas e se você tiver mais de duas opções? Por exemplo, se o tempo estiver ensolarado, vá à praia; se estiver nublado, vá ao parque; caso contrário (se estiver chovendo), fique em casa.
Para situações com múltiplas condições e escolhas, usamos a estrutura else if. Ela nos permite encadear várias verificações, uma após a outra.
A estrutura else if (Senão, se...)
O else if é usado entre o if inicial e o else final (que é opcional). Ele permite que você teste uma nova condição somente se a condição anterior (do if ou de um else if anterior) for falsa.
Sintaxe:
if (condição1) {
// Código a ser executado SE a condição1 for verdadeira
} else if (condição2) {
// Código a ser executado SE a condição1 for falsa E a condição2 for verdadeira
} else if (condição3) {
// Código a ser executado SE a condição1 for falsa E a condição2 for falsa E a condição3 for verdadeira
} else {
// Código a ser executado SE TODAS as condições anteriores forem falsas
}
- Você pode ter quantos blocos
else ifprecisar. - O JavaScript verifica as condições em ordem, de cima para baixo.
- Assim que uma condição é
true, o bloco de código correspondente é executado, e todas as outras condições (e oelsefinal) são ignoradas. O programa continua a execução após todo o blocoif/else if/else. - O bloco
elseno final é opcional. Se ele não existir e nenhuma das condiçõesifouelse iffor verdadeira, nenhum código dentro da estrutura condicional será executado.
Exemplo: Classificando a temperatura
let temperatura = 15;
if (temperatura > 25) {
console.log("Está fazendo calor!");
} else if (temperatura >= 18) { // Só verifica aqui se temperatura NÃO for > 25
console.log("Está agradável.");
} else if (temperatura >= 10) { // Só verifica aqui se temperatura NÃO for > 25 E NÃO for >= 18
console.log("Está fresco.");
} else { // Só executa aqui se temperatura NÃO for > 25 E NÃO for >= 18 E NÃO for >= 10
console.log("Está frio!");
}
console.log("Verificação de temperatura concluída.");
// Para temperatura = 15:
// 1. temperatura > 25 (15 > 25) -> false
// 2. temperatura >= 18 (15 >= 18) -> false
// 3. temperatura >= 10 (15 >= 10) -> true
// Executa: console.log("Está fresco.");
// Ignora o 'else' final.
// Saída:
// Está fresco.
// Verificação de temperatura concluída.
Como o JavaScript "pensa" com if, else if e else:
- Ele avalia a
condição1doif. - Se
condição1fortrue, executa o bloco doife pula para o final de toda a estrutura. - Se
condição1forfalse, ele avalia acondição2do primeiroelse if. - Se
condição2fortrue, executa o bloco doelse ife pula para o final de toda a estrutura. - Ele continua esse processo para cada
else ifna sequência. - Se todas as condições (
ifeelse if) foremfalse, e houver umelsefinal, ele executa o bloco doelse. - Se não houver
elsefinal e nenhuma condição fortrue, nenhum bloco de código dentro da estrutura condicional será executado.
Ordem das condições importa!
A ordem em que você escreve suas condições else if é muito importante, pois o JavaScript para na primeira condição que for verdadeira.
Exemplo de ordem incorreta (problema):
let pontuacao = 95;
if (pontuacao >= 60) {
console.log("Aprovado!");
} else if (pontuacao >= 90) { // Esta condição NUNCA será alcançada se pontuacao for >= 90
console.log("Aprovado com distinção!");
} else {
console.log("Reprovado.");
}
// Para pontuacao = 95:
// 1. pontuacao >= 60 (95 >= 60) -> true
// Executa: console.log("Aprovado!");
// Ignora o resto, incluindo o 'else if (pontuacao >= 90)'.
// Saída: Aprovado! (Incorreto, deveria ser "Aprovado com distinção!")
Exemplo de ordem correta:
let pontuacao = 95;
if (pontuacao >= 90) { // Começa pela condição mais específica/restritiva
console.log("Aprovado com distinção!");
} else if (pontuacao >= 60) { // Só verifica aqui se pontuacao NÃO for >= 90
console.log("Aprovado!");
} else {
console.log("Reprovado.");
}
// Para pontuacao = 95:
// 1. pontuacao >= 90 (95 >= 90) -> true
// Executa: console.log("Aprovado com distinção!");
// Ignora o resto.
// Saída: Aprovado com distinção! (Correto!)
Sempre organize suas condições do else if da mais específica para a mais geral, ou de forma que a lógica faça sentido e não "esconda" outras condições.
Com if, else if e else, você tem uma ferramenta poderosa para criar programas que reagem de forma inteligente a uma variedade de cenários, tornando seu código muito mais dinâmico e útil.