Saltar la navegación

3.2.- Estructura switch.

¿Qué podemos hacer cuando nuestro programa debe elegir entre más de dos alternativas?. Una posible solución podría ser emplear estructuras if anidadas, aunque no siempre esta solución es la más eficiente. Cuando estamos ante estas situaciones podemos utilizar la estructura de selección múltiple switch. En la siguiente tabla se muestra tanto la sintaxis, como el funcionamiento de esta estructura.

switch (expresion) {

 case valor1:

    sentencia1_1;

    sentencia1_2;

    ….

    break;

     ….

    ….

case valorN:

    sentenciaN_1;

    sentenciaN_2;

     ….

   break;

default:

   sentencias-default;

}

Condiciones:

  • Donde expresión debe ser del tipo char, byte, short o int, y las constantes de cada case deben ser de este tipo o de un tipo compatible.
  • La expresión debe ir entre paréntesis.
  • Cada case llevará asociado un valor y se finalizará con dos puntos.
  • El bloque de sentencias asociado a la cláusula default puede finalizar con una sentencia de ruptura break o no.

En resumen, se ha de comparar el valor de una expresión con un conjunto de constantes, si el valor de la expresión coincide con algún valor de dichas constantes, se ejecutarán los bloques de instrucciones asociados a cada una de ellas. Si no existiese coincidencia, se ejecutarían una serie de instrucciones por defecto.

Un rombo verde con la inscripción “expresión” muestra bajo él tres recuadros que representan los posibles valores que toma la variable que controla la estructura. Bajo cada uno de los recuadros verdes indicados, aparecen sendos recuadros azules con la palabra “secuencia1,2,...N” inscrita. De estos recuadros parten flechas que se unen en una pequeña circunferencia, de la que parte otra flecha hacia abajo.
José Luís García Martínez. (CC BY-NC)