javascript-condicional-switch

Qué es y cómo usar el condicional SWITCH en JavaScript

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.

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 bloque default 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.