Lección 16: switch
🧠 Concepto
Section titled “🧠 Concepto”switch es una estructura condicional que evalúa una expresión y ejecuta el bloque correspondiente al valor que coincida. Es especialmente útil cuando tienes múltiples condiciones que comparan la misma variable contra valores fijos.
Sintaxis
Section titled “Sintaxis”switch (expresion) { case valor1: // código si expresion === valor1 break; case valor2: // código si expresion === valor2 break; default: // código si no hay coincidencia}Cómo funciona
Section titled “Cómo funciona”- JavaScript evalúa la expresión del
switch. - Compara (con
===, estricta) contra cadacase. - Si encuentra coincidencia, ejecuta el código hasta encontrar
break. - Si no hay
break, continúa al siguiente caso (esto se llama fall-through). - Si ningún
casecoincide, ejecutadefault.
break: la clave del switch
Section titled “break: la clave del switch”Sin break, el programa sigue ejecutando los siguientes casos aunque no coincidan:
let fruta = 'manzana';
switch (fruta) { case 'manzana': console.log('Es una manzana'); // sin break → continúa case 'pera': console.log('Es una pera'); break;}
// Salida:// "Es una manzana"// "Es una pera" (¡se ejecutó aunque fruta no era 'pera'!)💻 Ejemplo
Section titled “💻 Ejemplo”let dia = 3;let nombreDia;
switch (dia) { case 1: nombreDia = 'Lunes'; break; case 2: nombreDia = 'Martes'; break; case 3: nombreDia = 'Miércoles'; break; case 4: nombreDia = 'Jueves'; break; case 5: nombreDia = 'Viernes'; break; case 6: nombreDia = 'Sábado'; break; case 7: nombreDia = 'Domingo'; break; default: nombreDia = 'Día inválido';}
console.log(`El día ${dia} es ${nombreDia}`);
// Fall-through intencional: casos agrupadoslet tipoUsuario = 'admin';
switch (tipoUsuario) { case 'admin': case 'superadmin': console.log('Acceso total al sistema'); break; case 'editor': console.log('Acceso a contenido'); break; case 'usuario': console.log('Acceso básico'); break; default: console.log('Acceso denegado');}📝 Ejercicio
Section titled “📝 Ejercicio”- Crea un archivo
switch.js. - Declara una variable
rolcon valores:'admin','mod','user','guest'. - Usa
switchpara mostrar los permisos de cada rol:- admin: “Acceso total: crear, leer, actualizar, eliminar”
- mod: “Acceso moderador: leer, actualizar”
- user: “Acceso básico: leer”
- guest: “Acceso limitado”
- default: “Rol desconocido”
- Añade un caso agrupado donde ‘admin’ y ‘superadmin’ tengan los mismos permisos.
let rol = 'admin';
switch (rol) { case 'superadmin': case 'admin': console.log('✅ Acceso total: crear, leer, actualizar, eliminar'); break; case 'mod': console.log('📝 Acceso moderador: leer, actualizar'); break; case 'user': console.log('👁️ Acceso básico: leer'); break; case 'guest': console.log('🔒 Acceso limitado'); break; default: console.log('❌ Rol desconocido');}⚠️ Nota
Section titled “⚠️ Nota”switch usa comparación estricta (===), no abstracta (==). Esto significa que switch('5') no coincidirá con case 5 porque string ≠ number.
switch ('5') { case 5: console.log('No me ejecuto'); // nunca break; case '5': console.log('Coincidencia exacta'); // este sí}Usa switch cuando tengas muchos casos comparando la misma variable. Para condiciones simples (menos de 3-4 casos), if/else suele ser más legible. El switch brilla con 4+ casos o cuando hay agrupaciones de casos (fall-through intencional).