English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial básico de JavaScript

Objeto de JavaScript

Función de JavaScript

HTML DOM de JS

BOM del navegador JS

Tutorial básico de AJAX

Manual de referencia de JavaScript

Sentencia switch de JavaScript

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‹/›

Palabra clave 'break'

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í.

Palabra clave default

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.

Múltiples situaciones

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.