El condicional switch
es una estructura de control en JavaScript que permite ejecutar diferentes bloques de código según el valor de una variable o expresión.
A veces se utiliza como una alternativa más limpia y legible a una serie de instrucciones if-else
anidadas. Aunque, mucha gente opina (yo incluido) que en lugar de mejorar la legibilidad, normalmente la empeora.
Si quieres aprender más sobre el condicional SWITCH
consulta el Curso de Introducción a la Programación leer más
Sintaxis básica
La sintaxis básica de un condicional switch
en JavaScript es la siguiente:
switch (expresion) {
case valor1:
// Código a ejecutar si expresion es igual a valor1
break;
case valor2:
// Código a ejecutar si expresion es igual a valor2
break;
// ...
default:
// Código a ejecutar si expresion no coincide con ningun caso
break;
}
- expresion: Es la expresión cuyo valor se evalúa en cada caso.
- caso (
case
): Representa un valor específico que se compara con la expresión. default
: Opcionalmente, se puede incluir un bloquedefault
que se ejecutará si ninguno de los casos coincide con el valor de la expresión.
El bloque default
se ejecutará si ninguno de los casos anteriores coincide con el valor de la expresión. Es opcional, pero lo más normal es que lo tengamos.
Ejemplo básico
Veamos un ejemplo de cómo se utiliza switch
:
let numero = 2;
switch (numero) {
case 1:
console.log("Uno");
break;
case 2:
console.log("Dos");
break;
case 3:
console.log("Tres");
break;
default:
console.log("Número no válido");
break;
}
En este caso, en función de lo que valga numero
:
- 1, 2 y 3 imprimirán el número correspondiente en pantalla.
- Cualquier otro número mostrará “Número no válido”.
Fall-Through entre casos
El Fall-Through es la posibilidad de “caer” de un caso a otro, y ejecutar varias sentencias de código. A diferencia de otros lenguajes (como C++), el “fall-through” en JavaScript está intencionadamente limitado.
Para poder “caer” de un caso a otro, es obligatorio que el case
desde el que vamos a caer no tenga sentencias.
Veamos un ejemplo:
let fruta = "manzana";
let color;
switch (fruta) {
case "manzana":
case "pera":
case "kiwi":
color = "verde";
break;
case "plátano":
case "limón":
color = "amarillo";
break;
case "fresa":
case "frambuesa":
case "cereza":
color = "rojo";
break;
default:
color = "desconocido";
}
console.log("La fruta " + fruta + " es de color " + color);
En este ejemplo, se utiliza switch
para asignar un color según la fruta dada. Se agrupan varias frutas bajo los mismos colores
Ejemplos prácticos
Determinar el nombre de un número
En este ejemplo, utilizamos la estructura switch
para determinar el nombre de un número según su valor.
let numero = 2;
switch (numero) {
case 1:
console.log("Uno");
break;
case 2:
console.log("Dos");
break;
case 3:
console.log("Tres");
break;
default:
console.log("Número no válido");
break;
}
Determinar la operación matemática según el operador
Este código muestra cómo utilizar un switch
para determinar la operación matemática según el operador proporcionado.
let operador = '+';
switch (operador) {
case '+':
console.log("Suma");
break;
case '-':
console.log("Resta");
break;
case '*':
console.log("Multiplicación");
break;
case '/':
console.log("División");
break;
default:
console.log("Operador no válido");
break;
}
Determinar el nombre de un día de la semana
Este ejemplo muestra cómo determinar el nombre de un día de la semana utilizando una estructura switch
.
let dia = 3;
switch (dia) {
case 1:
console.log("Lunes");
break;
case 2:
console.log("Martes");
break;
case 3:
console.log("Miércoles");
break;
// Agregamos casos para los días restantes...
default:
console.log("Día no válido");
break;
}
Determinar el nombre de un mes
Aquí se utiliza un switch para determinar el nombre de un mes según su valor.
let mes = 5;
switch (mes) {
case 1:
console.log("Enero");
break;
case 2:
console.log("Febrero");
break;
case 3:
console.log("Marzo");
break;
case 4:
console.log("Abril");
break;
case 5:
console.log("Mayo");
break;
case 6:
console.log("Junio");
break;
case 7:
console.log("Julio");
break;
case 8:
console.log("Agosto");
break;
case 9:
console.log("Septiembre");
break;
case 10:
console.log("Octubre");
break;
case 11:
console.log("Noviembre");
break;
case 12:
console.log("Diciembre");
break;
default:
console.log("Mes no válido");
break;
}
Estos ejemplos tienen el propósito de mostrar cómo utilizar el condicional Switch. No significa que sea la mejor forma de resolver el problema que abordan. Lo normal es que haya alternativas mejores.