Ejecución condicional: switch

Clase 38 de 80Curso de JavaScript Desde Cero

Contenido del curso

Primeros Pasos

Funciones y This

Resumen

Cuando necesitas evaluar una misma variable contra múltiples valores posibles, existe una estructura de control que simplifica la lógica y mantiene el código limpio. Se trata de Switch, una alternativa al uso encadenado de if, else if y else, con una diferencia fundamental: Switch únicamente verifica si una expresión es estrictamente igual a cada uno de los casos definidos.

¿Cómo funciona la estructura Switch?

Switch recibe una expresión entre paréntesis, que es el valor a evaluar. Dentro de sus llaves se definen múltiples bloques llamados case, cada uno con un valor específico [0:54]. Si la expresión coincide con el valor de un case, se ejecuta el código asociado. Al terminar, se utiliza la palabra reservada break para detener la evaluación y evitar que el programa siga revisando los casos restantes [1:28].

Si ninguno de los casos resulta verdadero, Switch ejecuta el bloque default, que actúa como respuesta de respaldo, similar a lo que haría un else al final de una cadena de condicionales [2:14].

¿Cuál es la sintaxis básica de Switch?

La estructura se compone de estos elementos:

  • switch(expresión): declara la evaluación.
  • case valor: define un escenario posible, seguido de dos puntos.
  • código a ejecutar: las instrucciones que corren si el caso coincide.
  • break: rompe el ciclo para no seguir evaluando.
  • default: código que se ejecuta cuando ningún caso coincide.

Es importante respetar los dos puntos después de cada case y su valor. Omitirlos genera un error de sintaxis que impide la ejecución [5:13].

¿Cómo se aplica Switch en un ejemplo real?

Imagina que trabajas en un mercado y necesitas consultar el precio de distintas frutas [3:28]. Se crea una variable llamada expresion con el valor del producto buscado:

javascript let expresion = "papayas";

switch (expresion) { case "naranjas": console.log("Las naranjas cuestan 20 pesos el kilo"); break; case "manzanas": console.log("Las manzanas cuestan 43 pesos el kilo"); break; case "plátanos": console.log("Los plátanos cuestan 30 pesos el kilo"); break; case "mangos": case "papayas": console.log("Los mangos y las papayas cuestan 25 pesos el kilo"); break; default: console.log(Lo siento, no contamos con ${expresion}); }

console.log("¿Hay algo más que desees?");

Al guardar y ejecutar, como la expresión es "papayas", el programa entra al caso compartido de mangos y papayas y muestra: "Los mangos y las papayas cuestan 25 pesos el kilo" [6:28].

¿Qué son los casos compartidos en Switch?

Cuando dos o más valores deben ejecutar el mismo bloque de código, puedes apilarlos sin agregar lógica duplicada [5:47]. Basta con escribir un case tras otro sin break entre ellos. En el ejemplo, tanto "mangos" como "papayas" comparten el mismo precio, así que comparten el mismo bloque de ejecución. Esto mantiene el código DRY (sin repeticiones innecesarias).

Si cambias la expresión a "uvas", un producto que no existe entre los casos definidos, Switch cae directamente en el default y responde: "Lo siento, no contamos con uvas" [7:23].

¿Por qué Switch usa comparación estricta?

A diferencia de if, donde puedes usar operadores como >, <, >= o !=, Switch trabaja internamente con el operador de comparación estricta (===) [8:08]. Esto significa que evalúa tanto el valor como el tipo de dato. No puedes usar operadores relacionales ni lógicos dentro de los case; Switch solo pregunta: ¿la expresión es exactamente igual a este valor?

Esta restricción hace que Switch sea ideal para escenarios donde comparas una variable contra valores concretos y predefinidos, como nombres de productos, opciones de menú o códigos de estado. Para condiciones más complejas con rangos o múltiples comparaciones, if y else if siguen siendo la mejor opción.

Si te interesa practicar, prueba agregar más frutas, cambiar los precios o incluso usar números en lugar de strings para observar cómo la comparación estricta afecta los resultados.

      Ejecución condicional: switch