La declaración
switch
se utiliza para realizar diferentes acciones según diferentes condiciones.
La declaración switch
JavaScript
Utilice la instrucción switch
para seleccionar uno de los muchos bloques de código que se ejecutarán.
Sintaxis
switch(expression) {
case x:
// code block
break;
case y:
// code block
break;
default:
// code block
}
Así es como funciona:
La expresión de cambio se evalúa una vez.
El valor de la expresión se compara con los valores de cada caso.
Si hay una coincidencia, se ejecuta el bloque de código asociado.
Si no hay coincidencia, se ejecuta el bloque de código predeterminado.
Ejemplo:
El método getDay()
devuelve el día de la semana como un número entre 0 y 6.
(Domingo=0, Lunes=1, Martes=2..)
Este ejemplo utiliza el número del día de la semana para calcular el nombre del día de la semana:
switch (new Date().getDay()) {
case 0:
day = "Sunday";
break;
case 1:
day = "Monday";
break;
case 2:
day = "Tuesday";
break;
case 3:
day = "Wednesday";
break;
case 4:
day = "Thursday";
break;
case 5:
day = "Friday";
break;
case 6:
day = "Saturday";
}
La palabra clave break
Cuando JavaScript encuentra una palabra clave break
, sale del bloque switch
.
Esto detendrá la ejecución dentro del bloque switch
.
No es necesario romper el último cuerpo en el bloque switch
. El bloque se rompe (termina) allí de todos modos.
Nota: Si omites la declaración
break
, el siguiente caso se ejecutará incluso si la evaluación no coincide con el caso.
La palabra clave default
La palabra clave default
especifica el código que se ejecutará si no hay coincidencia de casos:
Ejemplo:
El método getDay()
devuelve el día de la semana como un número entre 0 y 6.
Si hoy no es sábado (6) ni domingo (0), escribe un mensaje predeterminado:
switch (new Date().getDay()) {
case 6:
text = "Today is Saturday";
break;
case 0:
text = "Today is Sunday";
break;
default:
text = "Looking forward to the Weekend";
}
El caso default
no tiene que ser el último caso en un bloque switch
:
switch (new Date().getDay()) {
default:
text = "Looking forward to the Weekend";
break;
case 6:
text = "Today is Saturday";
break;
case 0:
text = "Today is Sunday";
}
Si el caso
default
no es el último caso en el bloqueswitch
, recuerde finalizar el caso predeterminado conbreak
.
Bloques de código comunes
A veces querrás que diferentes casos switch
utilicen el mismo código.
En este caso de ejemplo, 4 y 5 comparten el mismo bloque de código, y 0 y 6 comparten otro bloque de código:
Ejemplo:
switch (new Date().getDay()) {
case 4:
case 5:
text = "Soon it is Weekend";
break;
case 0:
case 6:
text = "It is Weekend";
break;
default:
text = "Looking forward to the Weekend";
}
Detalles de switch
Si varios casos coinciden con un valor de caso, se selecciona el primer caso.
Si no se encuentran casos coincidentes, el programa continúa con la etiqueta predeterminada.
Si no se encuentra ninguna etiqueta predeterminada, el programa continúa con las instrucciones posteriores al cambio.
Comparación estricta
Los casos switch
utilizan una comparación estricta (===).
Los valores deben ser del mismo tipo para que coincidan.
Una comparación estricta sólo puede ser verdadera si los operandos son del mismo tipo.
En este ejemplo no habrá coincidencia para x
:
Ejemplo:
let x = "0";
switch (x) {
case 0:
text = "Off";
break;
case 1:
text = "On";
break;
default:
text = "No value found";
}
Traducido con 💚 desde W3Schools.com