DevPath · Aprende a programar ESPTEN

Condicionales

La estructura switch

switch

Cuando comparas una misma variable contra un montón de valores concretos, la escalera de else if se hace larga y cansa de leer. El switch es como una centralita: "según el valor que entre, ve a esta puerta". Mismo resultado, mucho más ordenado a la vista:

const dia = "lunes";

switch (dia) {
  case "sabado":
  case "domingo":
    console.log("Fin de semana 🎉");
    break;
  case "lunes":
    console.log("Empieza la semana");
    break;
  default:
    console.log("Día laborable");
}

Cómo funciona

  1. Se evalúa la expresión del switch (dia).
  2. Se busca el case cuyo valor coincida (con comparación tipo ===).
  3. Se ejecuta su código hasta encontrar un break.
  4. Si nada coincide, se ejecuta el bloque default.

⚠️ TRAMPA CLÁSICA: ¡el break que falta!

Sin break, la ejecución no se detiene en su case: se desborda y sigue ejecutando el siguiente, y el siguiente... (es el efecto "cascada"). A veces se aprovecha a propósito —como cuando agrupamos "sabado" y "domingo" arriba—, pero olvidarlo sin querer es de los bugs más escurridizos que hay: el código "casi" funciona y te vuelves loco buscando el porqué. Acostúmbrate a poner el break a la vez que el case.

switch brilla con valores fijos y conocidos (días, opciones de menú, estados de un pedido). Para rangos (nota >= 5) el if/else if sigue siendo tu mejor amigo.

Ya sabes ramificar: tu programa elige caminos. El siguiente superpoder es repetir sin copiar y pegar mil veces lo mismo. Eso son los bucles, y te esperan en el próximo módulo.

Ejemplos

Estado de un pedido según su código

const codigo = 2;
switch (codigo) {
  case 1:
    console.log("Activo");
    break;
  case 2:
    console.log("Inactivo");
    break;
  default:
    console.log("Desconocido");
}
Pon esto en práctica

DevPath es un curso práctico: aquí lees la teoría; en la app la pones en práctica con ejercicios que se ejecutan de verdad, sin conexión.

Empezar gratis en la app →
← Truthy/falsy y el operador ternarioVer el módulo →