Cómo usar la declaración switch y case de JavaScript

Resumen: en este tutorial, aprenderás a usar la declaración switch
y case
de JavaScript
para ejecutar un bloque de código basado en múltiples condiciones.
Introducción a la declaración switch case de JavaScript
La sentencia switch
evalúa una expresión, compara su resultado con valores de cada caso (case
) y ejecuta la sentencia asociada con el valor de case coincidente.
A continuación, se ilustra la sintaxis de la instrucción switch:
switch (expresión) {
case value1:
statement1;
break;
case value2:
statement2;
break;
case value3:
statement3;
break;
default:
statement;
}
Cómo funciona.
- Primero, evalúe la expresión dentro de los paréntesis después de la palabra clave switch.
- En segundo lugar, compare el resultado de la expresión con el
valor1, valor2
, … en el case que se ramifique de arriba hacia abajo. La sentencia switch utiliza la comparación estricta (===). - Tercero, ejecute la declaración en la rama del case donde el resultado de la expresión es igual al valor que sigue a la palabra clave case. La sentencia break termina la ejecución de la sentencia switch. Si omites la declaración break, la ejecución del código pasa de la rama del case que coincide con la expresión a la siguiente. Si el resultado de la expresión no es estrictamente igual a no coincide con ningún valor, la declaración de switch ejecutará la declaración en la rama por default.
La declaración switch
dejará de comparar el resultado de la expresión con los valores en cada case restantes siempre que encuentre una coincidencia.
La sentencia switch
es como la sentencia if…else…if. Pero tiene una sintaxis más legible. En la práctica, a menudo se utiliza una sentencia switch para reemplazar una sentencia compleja if...else...if para hacer que el código sea más legible.
Técnicamente, la sentencia switch es equivalente a la siguiente sentencia if...else...if:
if (expression === value1) {
statement1;
} else if (expression === value2) {
statement2;
} else if (expression === value3) {
statement3;
} else {
statement;
}
Ejemplos de switch case de JavaScript
Tomemos algunos ejemplos del uso de la declaración de switch de JavaScript.
1) Usando la switch case de JavaScript para obtener el día de la semana
El siguiente ejemplo usa la instrucción switch para obtener el día de la semana en función de un número de día:
let day = 3;
let dayName;
switch (day) {
case 1:
dayName = 'Domingo';
break;
case 2:
dayName = 'Lunes';
break;
case 3:
dayName = 'Martes';
break;
case 4:
dayName = 'Miércoles';
break;
case 5:
dayName = 'Jueves';
break;
case 6:
dayName = 'Viernes';
break;
case 7:
dayName = 'Sábado';
break;
default:
dayName = 'Día incorrecto';
}
console.log(dayName); // Martes
Resultado:
Martes
Cómo funciona.
Primero, declaras la variable del día que contiene el número de día y la variable de nombre de día (dayName
).
En segundo lugar, obtiene el día de la semana en función del número de día mediante la instrucción switch
. Si el día es 1, el día de la semana es el domingo. Si el día es 2, el día de la semana es lunes, y así sucesivamente.
Tercero, se envía el día de la semana a la consola.
2) Usar la declaración switch de JavaScript para obtener el recuento de días basado en un mes
El siguiente ejemplo usa la instrucción switch
para obtener el conteo de días de un mes:
let year = 2022;
let month = 2;
let dayCount;
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
dayCount = 31;
break;
case 4:
case 6:
case 9:
case 11:
dayCount = 30;
break;
case 2:
// leap year
if ((year % 4 == 0 && !(year % 100 == 0)) || year % 400 == 0) {
dayCount = 29;
} else {
dayCount = 28;
}
break;
default:
dayCount = -1; // invalid month
}
console.log(dayCount); // 29
En este ejemplo, tenemos cuatro casos:
- Si el mes es 1, 3,5, 7, 8, 10 o 12, el número de días en un mes es 31.
- Si el mes es 4, 6, 9 u 11, el número de días en ese mes es 30.
- Si el mes es 2 y el año no es bisiesto, el número de días es 28. Si el año es bisiesto, el número de días es 29.
- Si el mes no está en el rango válido (1-12), la rama por
default
se ejecuta y establece la variabledayCount
en -1, lo que indica el mes no válido.
Resumen
- La sentencia
switch
evalúa una expresión, compara su resultado con valores en cada case y ejecuta la sentencia asociada con el case coincidente. - Usa la instrucción
switch
en lugar de una instrucción compleja if...else...if para hacer que el código sea más legible. - La sentencia switch usa la comparación estricta (
===
) para comparar la expresión con los valores de case.