¿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,shortoint, 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
casellevará asociado un valor y se finalizará con dos puntos. - El bloque de sentencias asociado a la cláusula
defaultpuede finalizar con una sentencia de rupturabreako 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.