Saltear al contenido principal
Título curso Aprende a programar (con Javascript)

Múltiples opciones. instrucción switch...case

Podemos tener la situación en que el flujo del programa puede depender de diversas opciones para continuar por un camino u otro. Vimos en el apartado anterior que para resolver ésto podíamos emplear varios ‘else if‘, tantos como opciones tengamos, pero hay una instrucción algo más concisa para conseguir el mismo resultado según esta notación general:

Analizamos un poco más en detalle la sintaxis de este código que incluye las palabras claves: switch, case, break y default:

  • Al lado de la palabra clave ‘switch’ pondremos entre paréntesis el nombre de la variable cuyo valor queremos comprobar. Según sea dicho valor se debe de ejecutar una serie de instrucciones.
  • Cada valor contra el que vamos a comparar se incluye tras la palabra clave ‘case‘ separada por dos puntos ( : ) y el valor encerrado en comillas
    Por ejemplo, si nuestro programa solicitara un número del 1 al 10, y según eligiera el usuario el programa le diera un resultado concreto, escribiríamos un ‘case’ para  cada nº: 1, 2, ….10.
  • Incluimos un ‘break‘ en cada cláusula ‘case’ para que el programa no se pare ahí, sino que salga de ese punto (break es romper en inglés) y continúe después del final de la instrucción switch con las instrucciones siguientes que contenga el programa.
  • La última clausula ‘default‘ realiza el mismo comentido que el último ‘else’ que ponemos tras una serie de ‘else if’. Es decir, si no se ha cumplido ninguna de las condiciones y queremos que se ejecute algo concreto, lo ponemos en esa clausula ‘default’.

En resumen, la instrucción ‘switch’ actua como un conmutador en conjunto con los diferentes ‘case’ (la traducción de la palabra ‘switch’ es precisamente esa: interruptor, conmutador). Imagina una via de tren que en un punto se desdobla en múltiples vías que van en diferentes direcciones. Igual que se accionaba un mecanismo para que el tren siguiera por una de esas vías en función de su destino, los switch/cases consiguen ese efecto, haciendo que el programa se encamine por el case que cumple la condición, y por tanto, que el programa ejecute las instrucciones que se han definido allí.

Veamos cómo debemos escribirla. Imaginemos que en el ejemplo que habíamos introducido antes hay 5 códigos promocionales distintos: ‘PlusOro’, ‘Platino33’, ‘100Max’, ‘SuperSilver’ y ‘TotalBronce’ que descuentan respectivamente 25, 20, 15, 10 y 5 € . No habría problema en escribir varios ‘else if’, pero vamos a ver otra manera de hacerlo con ‘case’ en el siguiente código ejemplo:

Si ves en el ejemplo, no hemos hecho los cálculos del precio final en cada cláusula ‘case’ para hacer el código más simple. Solo modificamos en cada ‘case’ el valor del descuento -que de partida le habíamos asignado el valor ‘0’-  y al finalizar la instrucción ‘switch’ calculamos el precio final. Si el usuario no ha introducido ningún código válido, el descuento seguiría siendo ‘0’ y el precio final ’50€’.

 

Volver arriba