JavaScript: Condicionais em JavaScript

Última atualização: 2026-10-13

Instruções condicionais dão ao seu programa o poder de tomar decisões — seguir caminhos diferentes baseados em situações diferentes. Sem elas, seu código rodaria de cima para baixo sem ramificação; com elas, seu programa pode pensar e escolher como um humano.

Declarações relacionadas:if...else switch

1. Instrução if

A condicional mais básica: se a condição for verdadeira, execute o código dentro das chaves.

HTML
<!DOCTYPE html>
<html lang="pt-br">
<head><meta charset="UTF-8"><title>Instrução if</title></head>
<body>
<div id="output"></div>
<script>
let idade = 20;
if (idade >= 18) {
  document.getElementById('output').textContent = 'Você é maior de idade';
}
</script>
</body>
</html>

Você pode omitir as chaves quando há apenas uma instrução dentro, mas é fortemente desencorajado — as chaves tornam seu código mais claro e previnem bugs quando você adicionar mais instruções depois.


Uma escolha binária: se a condição for verdadeira, execute o bloco if; caso contrário, execute o bloco else.

HTML
<!DOCTYPE html>
<html lang="pt-br">
<head><meta charset="UTF-8"><title>if...else</title></head>
<body>
<div id="output"></div>
<script>
let nota = 45;
if (nota >= 60) {
  document.getElementById('output').textContent = 'Aprovado!';
} else {
  document.getElementById('output').textContent = 'Não aprovado, continue tentando';
}
</script>
</body>
</html>

3. if...else if...else

Múltiplas condições avaliadas de cima para baixo — a primeira que corresponder é executada, e o resto é ignorado:

HTML
<!DOCTYPE html>
<html lang="pt-br">
<head><meta charset="UTF-8"><title>if...else if</title></head>
<body>
<div id="output"></div>
<script>
let nota = 85;
if (nota >= 90) {
  document.getElementById('output').textContent = 'Excelente';
} else if (nota >= 80) {
  document.getElementById('output').textContent = 'Bom';
} else if (nota >= 60) {
  document.getElementById('output').textContent = 'Aprovado';
} else {
  document.getElementById('output').textContent = 'Reprovado';
}
</script>
</body>
</html>

▶ Exemplo: Calculadora de Notas

▶ Experimente

4. Operador Ternário

O operador ternário é um atalho para if...else, ideal para escolhas binárias simples:

HTML
<script>
// Sintaxe: condição ? valor1 : valor2
let idade = 20;
let status = idade >= 18 ? 'Adulto' : 'Menor';

// Equivalente a:
let status2;
if (idade >= 18) {
  status2 = 'Adulto';
} else {
  status2 = 'Menor';
}
</script>
💡 Dica: O operador ternário é ótimo para atribuições simples de valor. Quando a lógica fica complexa, fique com if...else — legibilidade importa mais que brevidade.


5. Instrução switch

Ao verificar uma variável contra múltiplos valores fixos, switch é mais limpo que if...else if:

HTML
<script>
let dia = 3;
switch (dia) {
  case 1: console.log('Segunda'); break;
  case 2: console.log('Terça'); break;
  case 3: console.log('Quarta'); break;
  // ...
  default: console.log('Número inválido');
}
</script>

Dois pontos-chave:

  1. Nunca omita break — sem ele, a execução "cai" para o próximo case
  2. default é o caso geral — executa quando nenhum case corresponde

▶ Exemplo: Armadilha de Fall-through do Switch

▶ Experimente
⚠️ Nota: Esquecer break é o bug mais comum do switch. Mas às vezes o "fall-through" é útil — quando múltiplos valores devem executar a mesma lógica, omitir break intencionalmente permite que eles se fundam.


6. Valores falsy

Em verificações condicionais, os seguintes valores são tratados como false (chamados valores falsy):

Valor falsy Descrição
false Booleano falso
0 Zero
"" ou '' String vazia
null Null
undefined Undefined
NaN Not a Number

Todos os outros valores são truthy, incluindo "0" (string zero), [] (array vazio), {} (objeto vazio) — estes podem parecer "vazios", mas avaliam para true em condições.

▶ Exemplo: Verificações de Valores Falsy

▶ Experimente
⚠️ Nota: Ao usar || para valores padrão, cuidado: 0 e "" são válidos mas são tratados como falsy. Use ?? (operador de coalescência nula) em vez disso — ele só aplica o padrão para null e undefined.


Declarações relacionadas:if...else switch

❓ Perguntas Frequentes

P Qual a diferença entre == e === em condicionais?
R == realiza coerção de tipo antes de comparar ("1" == 1 é true), enquanto === não ("1" === 1 é false). Sempre use === para evitar conversões implícitas inesperadas.
P switch pode comparar strings?
R Sim. switch funciona com strings, números e booleanos — usa igualdade estrita (===) para comparação.
P Qual a diferença entre ?? e ||?
R || dispara em todos os valores falsy (0, "", null, undefined, NaN, false), enquanto ?? só dispara em null e undefined. Use ?? quando precisar preservar 0 e strings vazias.

📖 Resumo


📝 Exercícios

  1. Escreva um programa que recebe um ano como entrada e determina se é bissexto (divisível por 4 mas não por 100, ou divisível por 400)
  2. Construa uma calculadora simples: receba dois números e um operador (+, -, *, /) como entrada, use switch para calcular o resultado e trate divisão por zero
  3. Construa uma calculadora de IMC: receba altura (m) e peso (kg) como entrada, calcule o IMC e exiba a categoria (abaixo do peso/normal/sobrepeso/obeso)
Web-Tutorial.com

Equipe Técnica Web-Tutorial

Uma plataforma de tutoriais mantida por diversos desenvolvedores. Cada tutorial é escrito e revisado por profissionais da área correspondente. Trabalhamos para manter nosso conteúdo preciso e confiável — se encontrar algum problema, avise-nos.

100%