English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
El 'switch' es una estructura de语句 de condición similar a 'if ... else ...', pero a diferencia de 'if ... else ...', el 'switch' permite probar si una variable es igual a una lista de valores.
Utilice 'switch' para seleccionar uno de muchos bloques de código a ejecutar. Esta es una solución perfecta para evitar la utilización de múltiples sentencias 'if...else'.
Una estructura 'switch' se ve así:
switch (expression) { case value1: //Ejecutar la sentencia //El resultado de la expresión coincide con value1Coincidencia break; case value2: //Ejecutar la sentencia //El resultado de la expresión coincide con value2Coincidencia break; ... case valueN: //Ejecutar la sentencia //El resultado de la expresión coincide con value N break; default: //Cuando ninguno de los puntos anteriores se ejecute //Ejecute el bloque de código aquí }
Siguiendo la lógica del bloque de código anterior, este es el orden de los eventos que ocurrirán:
La expresión 'switch' se evalúa una vez
Se compara el valor de la expresión con el valor de cada caso
Si hay coincidencia, se ejecutará el bloque de código correspondiente
Si ninguna de las condiciones coincide, se ejecutará el bloque de código predeterminado
El siguiente ejemplo utiliza el número de día laborable para calcular el día de la semana:
var day; 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"; break; default: day = "Undefined Day"; }Prueba ver‹/›
La palabra clave 'break' asociada con cada etiqueta 'case' asegura que el programa salga del cambio de contexto una vez ejecutada la sentencia coincidente y continúe ejecutando la sentencia en el contexto siguiente. Si se omite 'break', el programa continuará ejecutando la siguiente sentencia en la estructura 'switch'.
Si olvida descansar, el guión comenzará a ejecutarse en condiciones que cumplan con los requisitos y luego ejecutará las condiciones que cumplan con los requisitos:
var num = Number(document.querySelector("input").value); var text; switch (num) { case 1: text = "El número que ingresaste es" 1"; case 2: text = "El número que ingresaste es" 2"; case 3: text = "El número que ingresaste es" 3"; case 4: text = "El número que ingresaste es" 4"; case 5: text = "El número que ingresaste es" 5"; default: text = "Ejecutar declaración predeterminada"; }Prueba ver‹/›
No es necesario interrumpir la última situación (es decir, default) en el bloque switch. Porque el bloque de declaraciones finaliza aquí.
Si no hay coincidencia de case, la palabra clave default especifica algunos códigos que se deben ejecutar.
Sólo puede haber una declaración default en switch. A pesar de que es opcional, se recomienda utilizarla porque puede manejar situaciones inesperadas.
A veces, es posible que desee que diferentes situaciones utilicen el mismo código o usar código común.
Este es un ejemplo de una declaración switch de orden de operación, donde cuatro valores diferentes ejecutan la misma operación:
var num = Number(document.querySelector("input").value); var text; switch (num) { case 1: case 2: case 3: case 4: text = "El número que ingresaste está entre" 1 - 4"; break; case 5: case 6: case 7: case 8: text = "El número que ingresaste está entre" 5 - 8"; break; default: text = "Ejecutar declaración predeterminada"; }Prueba ver‹/›
Si varios cases coinciden con el valor, se seleccionará el primer case.
Si no se encuentra una coincidencia de case, el programa continuará utilizando la etiqueta predeterminada.
Si no se encuentra la etiqueta predeterminada, el programa continuará ejecutando la declaración después del cambio.