Condicionais Avançadas: Else If, Switch e Ternários
O que vais aprender nesta aula:
- Lidar com múltiplas opções usando
else if - A estrutura elegante
switchpara menus e casos fixos - O operador ternário
? :para decisões rápidas numa linha
🧠 Teoria (com Analogia e Contexto Real)
Nem tudo na vida é "Sim" ou "Não" (preto ou branco). Muitas vezes temos várias opções.
🚦 Analogia do Semáforo
No trânsito, não tens apenas "Pára" e "Anda".
- SE (if) estiver Verde 🟢 ➜ Avança.
- SENÃO SE (else if) estiver Amarelo 🟡 ➜ Abranda.
- SENÃO (else) estiver Vermelho 🔴 ➜ Pára.
Porque é que isto importa? Imagina um sistema de chat que mostra o estado do utilizador: "Online", "Ausente", "Ocupado" ou "Offline". Um simples if/else não chegaria. Precisamos de verificar várias condições em cadeia.
💻 Prática (Orientada e Progressiva)
Vamos expandir o nosso leque de decisões:
Exemplo 1: A escada `else if`
Verifica condições sequencialmente. Assim que encontra uma verdadeira, pára.
let hora = 14;
if (hora < 12) {
console.log("Bom dia! ☀️");
} else if (hora < 20) {
console.log("Boa tarde! 🌤️"); // Entra aqui porque 14 < 20
} else {
console.log("Boa noite! 🌙");
}
Exemplo 2: O `switch` (Ideal para casos fixos)
Quando queres verificar o valor exato de uma variável (como um menu).
let fruto = "Banana";
switch (fruto) {
case "Laranja":
console.log("Laranjas custam 0.59€");
break; // O break é obrigatório para não saltar para o próximo!
case "Banana":
console.log("Bananas custam 0.99€");
break;
default:
console.log("Desculpe, não temos " + fruto);
}
Exemplo 3: O Operador Ternário `? :`
Sintaxe: condição ? valor_se_verdadeiro : valor_se_falso
let idade = 20;
// Se idade >= 18 for verdade, status recebe "Adulto", senão recebe "Menor"
let status = idade >= 18 ? "Adulto" : "Menor";
console.log(status); // "Adulto"
✅ Verificação de Conhecimento
1. Para que serve a palavra `break` no switch?
2. Quando devo usar `switch` em vez de `else if`?
3. Qual é o resultado de: `true ? 10 : 20`?
🧩 Desafio Prático
Tradutor de Cores (Switch)
Cria um programa que recebe uma cor em inglês ("Red", "Blue", "Green") e a traduz para português.
Usa um switch para fazer a tradução.
Requisitos:
- Variável
corIngles - Casos para "Red", "Blue", "Green"
- Um
defaultpara "Cor desconhecida"
let corIngles = "Blue";
// Teu switch aqui
Mostrar Solução
let corIngles = "Blue";
switch (corIngles) {
case "Red":
console.log("Vermelho");
break;
case "Blue":
console.log("Azul");
break;
case "Green":
console.log("Verde");
break;
default:
console.log("Cor desconhecida");
}
📌 Explicação: O switch verifica o valor da variável corIngles. Quando encontra "Blue", executa o código e o break faz com que saia do switch imediatamente, sem testar o resto.