contacto[arroba]digitallearning.es
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:

  • 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 va a dar 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 queremso que se ejecute algo concreto, lo ponemos en esa clausula ‘default’

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 tenemos también esta opción del código ejemplo siguiente:

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€’.