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
- Se evalúa la expresión del
switch(dia). - Se busca el
casecuyo valor coincida (con comparación tipo===). - Se ejecuta su código hasta encontrar un
break. - 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.
switchbrilla con valores fijos y conocidos (días, opciones de menú, estados de un pedido). Para rangos (nota >= 5) elif/else ifsigue 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");
}