¿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
oint
, 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 rupturabreak
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.