- Es una estructura de control para evaluar valores exactos.
- Es ideal cuando:
- se compara una misma variable
- contra varios valores específicos
- Alternativa más limpia a muchos
if / else if.
switch (expresion) {
case valor1:
// código
break;
case valor2:
// código
break;
default:
// código por defecto
}switchevalúa la expresión con===(triple igual).breakdetiene la ejecución delswitch.defaultes opcional.
const dia = 0;
switch (dia) {
case 0:
console.log('Domingo');
break;
case 1:
console.log('Lunes');
break;
case 2:
console.log('Martes');
break;
default:
console.log('No es lunes, martes ni domingo');
}Sin break, el código sigue ejecutándose hacia abajo.
const dia = 0;
switch (dia) {
case 0:
console.log('Domingo');
case 1:
console.log('Lunes');
case 2:
console.log('Martes');
}Salida: Domingo Lunes Martes
✅ Esto se llama fall-through
❌ No suele ser lo que queremos
const dia = 1;
switch (dia) {
case 0:
console.log('Domingo');
break;
case 1:
console.log('Lunes');
break;
case 2:
console.log('Martes');
break;
default:
console.log('Otro día');
}Salida: Lunes
Se ejecuta cuando ningún case coincide.
const dia = 5;
switch (dia) {
case 0:
console.log('Domingo');
break;
case 1:
console.log('Lunes');
break;
default:
console.log('No es lunes ni domingo');
}switch compara usando ===.
const dia = '2';
switch (dia) {
case 2:
console.log('Martes');
break;
default:
console.log('No es martes');
}Salida: No es martes
✅ Solución:
case '2':
console.log('Martes');✅ Útil cuando:
- se comparan valores exactos
- hay muchos casos claros
- se quiere evitar
if / else iflargos
❌ No recomendado cuando:
- hay rangos (
>,<) - hay condiciones complejas
- la lógica es muy dinámica
switchevalúa una expresión contra múltiples valores- Usa comparación estricta (
===) breakes obligatorio en la mayoría de los casosdefaultcubre casos no contemplados