DevPath · Aprenda a programar ESPTEN

Condicionais

A estrutura switch

switch

Quando você compara a mesma variável com um monte de valores específicos, a escada de else if fica longa e cansativa de ler. O switch é como uma mesa telefônica: "dependendo do valor que entrar, vá para esta porta". Mesmo resultado, muito mais organizado aos olhos:

const dia = "segunda";

switch (dia) {
  case "sábado":
  case "domingo":
    console.log("Fim de semana 🎉");
    break;
  case "segunda":
    console.log("Começa a semana");
    break;
  default:
    console.log("Dia útil");
}

Como funciona

  1. A expressão do switch é avaliada (dia).
  2. Procura-se o case cujo valor coincida (com comparação tipo ===).
  3. Seu código é executado até encontrar um break.
  4. Se nada coincidir, o bloco default é executado.

⚠️ PEGADINHA CLÁSSICA: o break que falta!

Sem break, a execução não para no seu case: ela transborda e continua executando o próximo, e o próximo... (é o efeito "cascata"). Às vezes isso é usado de propósito, como quando agrupamos "sábado" e "domingo" acima, mas esquecê-lo sem querer é um dos bugs mais traiçoeiros que existem: o código "quase" funciona e você fica louco procurando o porquê. Crie o hábito de digitar o break junto com o case.

switch brilha com valores fixos e conhecidos (dias, opções de menu, estados de um pedido). Para faixas (nota >= 5) o if/else if ainda é seu melhor amigo.

Você já sabe ramificar: seu programa escolhe caminhos. O próximo superpoder é repetir sem copiar e colar a mesma coisa mil vezes. Isso são os laços, e eles te esperam no próximo módulo.

Exemplos

Status de um pedido conforme o código

const codigo = 2;
switch (codigo) {
  case 1:
    console.log("Ativo");
    break;
  case 2:
    console.log("Inativo");
    break;
  default:
    console.log("Desconhecido");
}
Coloque isto em prática

O DevPath é um curso prático: aqui você lê a teoria; no app você a coloca em prática com exercícios que rodam de verdade, offline.

Comece grátis no app →
← Truthy/falsy e o operador ternárioVer o módulo →