Tomando Decisões no Código
Programas precisam tomar decisões. "Se isso acontecer, faça aquilo." Vamos aprender condicionais!
A estrutura if
javascript
if (condição) { // código executado se condição for verdadeira}Exemplo:
javascript
const idade = 18; if (idade >= 18) { console.log("Você é maior de idade!");}if...else
javascript
const idade = 16; if (idade >= 18) { console.log("Maior de idade");} else { console.log("Menor de idade");}if...else if...else
Para múltiplas condições:
javascript
const nota = 75; if (nota >= 90) { console.log("A - Excelente!");} else if (nota >= 80) { console.log("B - Muito bom!");} else if (nota >= 70) { console.log("C - Bom!");} else if (nota >= 60) { console.log("D - Regular");} else { console.log("F - Reprovado");}Condições com operadores lógicos
E (&&) - todas devem ser verdadeiras
javascript
const idade = 25;const temCarteira = true; if (idade >= 18 && temCarteira) { console.log("Pode dirigir!");}OU (||) - pelo menos uma verdadeira
javascript
const diaSemana = "sábado"; if (diaSemana === "sábado" || diaSemana === "domingo") { console.log("É fim de semana!");}NÃO (!) - inverte a condição
javascript
const chovendo = false; if (!chovendo) { console.log("Não está chovendo, pode sair!");}Combinando operadores
javascript
const idade = 25;const temIngresso = true;const listaVIP = false; if ((idade >= 18 && temIngresso) || listaVIP) { console.log("Pode entrar na festa!");}Use parênteses para deixar claro a ordem!
Operador ternário
Atalho para if/else simples:
javascript
// Com if/elselet mensagem;if (idade >= 18) { mensagem = "Maior";} else { mensagem = "Menor";} // Com ternárioconst mensagem = idade >= 18 ? "Maior" : "Menor";Sintaxe:
javascript
condição ? valorSeVerdadeiro : valorSeFalsoMais exemplos:
javascript
const status = logado ? "Online" : "Offline";const desconto = vip ? 0.2 : 0;const saudacao = hora < 12 ? "Bom dia" : "Boa tarde";switch
Para comparar uma variável com múltiplos valores:
javascript
const diaSemana = 3; switch (diaSemana) { case 1: console.log("Segunda"); break; case 2: console.log("Terça"); break; case 3: console.log("Quarta"); break; case 4: console.log("Quinta"); break; case 5: console.log("Sexta"); break; case 6: case 7: console.log("Fim de semana!"); break; default: console.log("Dia inválido");}Importante: Não esqueça o break!
Valores truthy e falsy
JavaScript considera alguns valores como "falsos":
javascript
// Valores FALSY (considerados false)if (false) // falseif (0) // falseif ("") // false (string vazia)if (null) // falseif (undefined) // falseif (NaN) // false // Todo o resto é TRUTHY (considerado true)if (true) // trueif (1) // trueif ("texto") // trueif ([]) // true (array vazio!)if ({}) // true (objeto vazio!)Uso prático:
javascript
const nome = ""; if (nome) { console.log(`Olá, ${nome}!`);} else { console.log("Nome não informado");}Exercício: Verificador de idade
javascript
const nome = prompt("Qual seu nome?");const idade = Number(prompt("Qual sua idade?")); if (!nome) { console.log("Nome não informado!");} else if (idade < 0 || idade > 150) { console.log("Idade inválida!");} else if (idade < 13) { console.log(`${nome}, você é uma criança.`);} else if (idade < 18) { console.log(`${nome}, você é adolescente.`);} else if (idade < 60) { console.log(`${nome}, você é adulto.`);} else { console.log(`${nome}, você é idoso.`);}Exercício: Calculadora de desconto
javascript
const valorCompra = 250;const clienteVIP = true;let desconto = 0; if (clienteVIP) { desconto = 0.15; // 15% para VIP} else if (valorCompra >= 200) { desconto = 0.10; // 10% para compras acima de 200} else if (valorCompra >= 100) { desconto = 0.05; // 5% para compras acima de 100} const valorDesconto = valorCompra * desconto;const valorFinal = valorCompra - valorDesconto; console.log(`Valor original: R$ ${valorCompra}`);console.log(`Desconto: ${desconto * 100}% (R$ ${valorDesconto})`);console.log(`Valor final: R$ ${valorFinal}`);Dicas importantes
-
Sempre use
===ao invés de==javascript// Ruimif (idade == "18") // true (converte tipos!) // Bomif (idade === "18") // false (tipos diferentes) -
Evite condições muito complexas
javascript// Ruimif (a && b || c && !d || e) { } // Bom - quebre em variáveisconst condicao1 = a && b;const condicao2 = c && !d;if (condicao1 || condicao2 || e) { } -
Use early return quando possível
javascriptfunction verificarIdade(idade) { if (idade < 0) { return "Idade inválida"; } if (idade < 18) { return "Menor de idade"; } return "Maior de idade";}
Resumo
- ✅
if/elsepara decisões - ✅
else ifpara múltiplas condições - ✅
&&(E),||(OU),!(NÃO) - ✅ Operador ternário:
condição ? sim : não - ✅
switchpara comparar valores - ✅ Valores truthy e falsy
Na próxima aula, vamos aprender loops para repetir código! 🚀