La estructura switch
En JavaScript, la estructura switch se utiliza para ejecutar diferentes bloques de código basados en el valor de una expresión. Es útil cuando tienes múltiples condiciones que deseas evaluar, ya que puede ser más legible y organizado que usar múltiples if...else if.
1. Cómo funciona switch? #
El switch evalúa una expresión una vez y luego compara su valor con los valores de los diferentes casos (case). Cuando encuentra un case que coincide, ejecuta el código asociado a ese case. Si no hay coincidencias, puede ejecutar un bloque default.
Sintaxis básica:
1switch (expresión) { 2 case valor1: 3 // Código a ejecutar si la expresión === valor1 4 break; 5 case valor2: 6 // Código a ejecutar si la expresión === valor2 7 break; 8 // Puedes tener tantos casos como necesites 9 default: 10 // Código a ejecutar si no hay coincidencias 11}
expresión: Es el valor que se evalúa una vez al comienzo delswitch.case valor: Es cada posible valor que la expresión puede tomar.break: Detiene la ejecución delswitchdespués de que se ejecuta un bloquecase. Si se omite, el siguiente bloquecasetambién se ejecutará (esto se llama "fall through").default: Opcional. Se ejecuta si ninguno de los casos coincide con la expresión.
Ejemplo básico #
Supongamos que queremos mostrar un mensaje basado en el día de la semana:
1let dia = "martes"; 2 3switch (dia) { 4 case "lunes": 5 console.log("Hoy es lunes"); 6 break; 7 case "martes": 8 console.log("Hoy es martes"); 9 break; 10 case "miércoles": 11 console.log("Hoy es miércoles"); 12 break; 13 default: 14 console.log("Día no reconocido"); 15}Salida de consola Hoy es martes
En este ejemplo:
- La variable
diacontiene"martes". - El
switchevalúa la expresióndiay la compara con cadacase. - Cuando encuentra
case "martes", se ejecuta el bloque de código correspondiente y muestra "Hoy es martes". - El
breakdetiene la ejecución para evitar que otros casos se ejecuten. - Si
diano coincide con ningúncase, se ejecuta el bloquedefault.
Importancia del break #
El break es crucial para evitar que el código "caiga" en los siguientes casos, lo que puede llevar a resultados inesperados.
Ejemplo sin break:
1let dia = "martes"; 2 3switch (dia) { 4 case "lunes": 5 console.log("Hoy es lunes"); 6 case "martes": 7 console.log("Hoy es martes"); 8 case "miércoles": 9 console.log("Hoy es miércoles"); 10 default: 11 console.log("Día no reconocido"); 12}Salida de consola Hoy es martes Hoy es miércoles Día no reconocido
- En este ejemplo, sin
break, elswitchimprime todos los mensajes a partir de "Hoy es martes", lo cual generalmente no es lo que se desea.
Ejemplo con default #
El default es útil cuando deseas manejar cualquier caso que no esté explícitamente cubierto por los case.
1let dia = "sábado"; 2 3switch (dia) { 4 case "lunes": 5 console.log("Hoy es lunes"); 6 break; 7 case "martes": 8 console.log("Hoy es martes"); 9 break; 10 case "miércoles": 11 console.log("Hoy es miércoles"); 12 break; 13 default: 14 console.log("Día no reconocido"); // Muestra "Día no reconocido" 15}Salida de consola Día no reconocido
debes tener cuidado al usar 'switch' ya que puede llevar a crear código sucio y difícil de mantener.
Resumen del tema
Conceptos clave #
- Estructura de Selección Múltiple (
switch): evalúa una expresión contra múltiples etiquetascaseusando comparación estricta (===). - Control de Salida con
break: interrumpe la ejecución del bloque; omitirlo provoca caída en cascada (fall-through) hacia los casos siguientes. - Cláusula
default: bloque opcional de escape si ninguna condicióncasecoincide.
Qué debes recordar #
Recuerda incluir siempre break en cada cláusula case (a menos que busques deliberadamente ejecución en cascada) y ten en cuenta que la evaluación se realiza con igualdad estricta (===).