Saltar al contenido principal

Estructuras de control: Condicionales SWITCH

Hasta ahora hemos visto que podemos utilizar if, else y else if para tomar decisiones.

Sin embargo, existe otra estructura que resulta muy útil cuando necesitamos comparar una misma variable con varios valores posibles.

Para ello utilizamos switch.

Imagina el siguiente ejemplo:

  • Si el usuario selecciona el idioma español, mostraremos un mensaje en español.
  • Si selecciona inglés, mostraremos el mensaje en inglés.
  • Si selecciona francés, lo mostraremos en francés.

Podríamos hacerlo con varios else if, pero switch hace que el código sea más limpio y fácil de leer.


¿Cuándo utilizar switch?

Utiliza switch cuando:

  • Quieras comparar una misma variable con diferentes valores.
  • Tengas muchas opciones posibles.
  • Quieras que el código sea más legible.

Por el contrario, si las condiciones utilizan operadores como >, < o >=, normalmente es mejor utilizar if.

💡 Consejo

Una regla sencilla es:

  • Si comparas valores concretos, utiliza switch.
  • Si comparas condiciones, utiliza if.

Sintaxis

La estructura básica es la siguiente:

switch (variable) {

case valor1:
// Código A
break;

case valor2:
// Código B
break;

default:
// Código C por defecto

}

Veamos qué significa cada parte.

  • switch indica que vamos a comparar una variable.
  • Cada case representa uno de los posibles valores.
  • break finaliza ese caso y evita que el programa continúe ejecutando los siguientes.
  • default se ejecuta cuando ninguno de los casos anteriores coincide.

Podríamos decir que sería el código equivalente a utilizar if:

if (variable === valor1) {
// Código A
}else if (variable === valor2){
// Código B
}else{
// Código C por defecto
}

Diagrama de funcionamiento

           switch



Valor de variable



┌────────┼────────┐
│ │ │
case A case B case C
│ │ │
└────────┴────────┘

default

Primer ejemplo

Supongamos que queremos mostrar el nombre de un día de la semana.

let dia = 3;

switch (dia) {

case 1:
console.log("Lunes");
break;

case 2:
console.log("Martes");
break;

case 3:
console.log("Miércoles");
break;

case 4:
console.log("Jueves");
break;

case 5:
console.log("Viernes");
break;

default:
console.log("Fin de semana");

}

Resultado:

Miércoles

¿Qué hace break?

Una de las palabras más importantes dentro de un switch es break.

Cuando JavaScript encuentra un break, sale inmediatamente del switch.

let numero = 2;

switch (numero) {

case 1:
console.log("Uno");
break;

case 2:
console.log("Dos");
break;

case 3:
console.log("Tres");
break;

}

Resultado:

Dos

¿Qué ocurre si olvidamos el break?

Si no escribimos break, JavaScript continúa ejecutando los siguientes casos.

let numero = 2;

switch (numero) {

case 1:
console.log("Uno");

case 2:
console.log("Dos");

case 3:
console.log("Tres");

}

Resultado:

Dos
Tres

¿Por qué también aparece Tres?

Porque, al no encontrar un break, JavaScript sigue ejecutando el resto de los casos.

Importante: Uno de los errores más habituales al comenzar a utilizar switch es olvidar escribir break.


El bloque default

El bloque default funciona de forma parecida al else de una estructura if.

Se ejecuta cuando ninguno de los casos anteriores coincide.

let color = "amarillo";

switch (color) {

case "rojo":
console.log("Detenerse");
break;

case "verde":
console.log("Avanzar");
break;

default:
console.log("Color desconocido");

}

Resultado:

Color desconocido

Ejemplo 1: Semáforo

let color = "verde";

switch (color) {

case "rojo":
console.log("Detente.");
break;

case "amarillo":
console.log("Reduce la velocidad.");
break;

case "verde":
console.log("Puedes continuar.");
break;

default:
console.log("Color no válido.");

}

Ejemplo 2: Idiomas

let idioma = "es";

switch (idioma) {

case "es":
console.log("Hola");
break;

case "en":
console.log("Hello");
break;

case "fr":
console.log("Bonjour");
break;

default:
console.log("Idioma no disponible");

}

Agrupar varios casos

En ocasiones queremos que varios valores ejecuten exactamente el mismo código.

No es necesario repetirlo. Simplemente dejamos el caso de arriba "vacío"

let dia = 6;

switch (dia) {

case 6:
case 7:
console.log("Es fin de semana.");
break;

default:
console.log("Es un día laborable.");

}

Resultado:

Es fin de semana.

Este recurso es muy utilizado para evitar repetir código.


switch o if... ¿Cuál debo utilizar?

Las dos estructuras permiten tomar decisiones, pero cada una está pensada para situaciones diferentes.

Utiliza switch cuando...

  • Comparas una misma variable.
  • Existen muchos valores posibles.
  • Todos los casos son valores concretos, es decir, como si siempre fuese una comparacion de if de igualdad ===.

Por ejemplo:

switch (mes) {

case 1:
case 2:
case 3:

}

Utiliza if cuando...

  • Comparas rangos de valores.
  • Utilizas operadores como >, < o >=.
  • Las condiciones son más complejas.

Por ejemplo:

if (edad >= 18) {

}

o

if (nota >= 5 && asistencia >= 80) {

}

Errores frecuentes

Olvidar el break

❌ Incorrecto

case 1:
console.log("Uno");

case 2:
console.log("Dos");

Repetir el mismo case

❌ Incorrecto

case 1:
...

case 1:
...

Cada caso debe tener un valor diferente.


Utilizar condiciones

Muchos principiantes intentan hacer esto:

switch (edad) {

case edad >= 18:

}

Esto no funciona como esperamos.

Si queremos evaluar condiciones se "mayor que" o "menor que", debemos utilizar if.


Buenas prácticas

✅ Utiliza switch únicamente cuando haga el código más legible.

✅ Escribe siempre un bloque default, aunque solo sea para mostrar un mensaje de error.

✅ No olvides los break.


Resumen

La estructura switch permite comparar una variable con distintos valores posibles de forma clara y ordenada.

Recuerda:

  • Cada posibilidad se representa mediante un case.
  • break evita que se ejecuten los siguientes casos.
  • default actúa como una opción por defecto cuando no existe ninguna coincidencia.