Condicionales Switch

Estructuras condicionales múltiples


Si has visto la sección de condicionales If/else, habrás notado que su último ejemplo, donde utilizamos múltiples condiciones if / else no es demasiado elegante, ya que existe mucho código repetitivo. Si tenemos la necesidad de hacer múltiples condiciones y queremos solucionar esto, podemos recurrir al switch.

Condicional Switch

La estructura de control switch permite definir casos específicos a realizar cuando la variable expuesta como condición sea igual a los valores que se especifican a continuación mediante cada case:

let nota = 7;
console.log("He realizado mi examen. Mi resultado es el siguiente:");

switch (nota) {
  case 10:
    calificacion = "Sobresaliente";
    break;
  case 9:
  case 8:
    calificacion = "Notable";
    break;
  case 7:
  case 6:
    calificacion = "Bien";
    break;
  case 5:
    calificacion = "Suficiente";
    break;
  case 4:
  case 3:
  case 2:
  case 1:
  case 0:
    calificacion = "Insuficiente";
    break;
  default:
    // Cualquier otro caso
    calificacion = "Nota errónea";
    break;
}

console.log("He obtenido un", calificacion);

Hay varias puntualizaciones que aclarar sobre este ejemplo, así que vamos a explicarlo:

  • La sentencia switch establece que vamos a realizar múltiples condiciones analizando la variable nota.
  • Cada condición se establece mediante un case, seguido del valor posible de cada caso.
  • El switch comienza evaluando el primer case, y continua con el resto, hacia abajo.
  • Observa que algunos case tienen un break. Esto hace que deje de evaluar y se salga del switch.
  • Los case que no tienen break, no se interrumpen, sino que se salta al siguiente case.
  • El caso especial default es como un else. Si no entra en ninguno de los anteriores, entra en default.

Ten en cuenta que este ejemplo no es exactamente equivalente al que vimos en el tema de if/else. Este ejemplo funcionaría si sólo permitimos notas que sean números enteros, es decir, números del 0 al 10, sin decimales. En el caso de que nota tuviera por ejemplo, el valor 7.5, mostraría Nota errónea, ya que no entraría en los casos anteriores.

El ejemplo de los if múltiples del tema anterior si controla casos de números decimales porque establecemos comparaciones de rangos con mayor o menor (> ó <), cosa que con el switch no se puede hacer. El switch está indicado para casos con valores concretos y específicos.

Recuerda que al final de cada caso es necesario indicar un break para terminar y salir del switch. En el caso que no sea haga, el programa saltará al siguiente caso, incluso aunque no se cumpla la condición específica.

Alternativas al Switch

Aunque puede funcionar perfectamente, a muchos programadores el switch no les resulta una estructura condicional satisfactoria, ya que tiene una sintaxis algo extraña que puede complicarse, puede ser difícil de leer y poco elegante. Existen algunas alternativas que veremos más adelante, como el uso de diccionarios y objetos, o incluso el uso de operadores ternarios, que muchas veces, también son desaconsejados en casos con muchas condiciones.

¿Quién soy yo?

Soy Manz, vivo en Tenerife (España) y soy streamer partner en Twitch y profesor. Me apasiona el universo de la programación web, el diseño y desarrollo web y la tecnología en general. Aunque soy full-stack, mi pasión es el front-end, la terminal y crear cosas divertidas y locas.

Puedes encontrar más sobre mi en Manz.dev