Switch es un condicional de selección de Java, una instrucción de múltiples vías que evalúa distintas opciones o “casos” y selecciona una opción entre varias.
El condicional switch es una forma de expresión de anidación múltiple de instrucciones if…else.
Es útil a la hora de definir por ejemplo, un menú de usuario en aplicaciones que se ejecutan por consola.
Switch evalúa la expresión y programa distintas salidas de acuerdo a las opciones que hayamos puesto.
switch (<expresión>) {
case <valor>:
<lista de sentencias separadas por punto y coma>;
case <valor>:
<lista de sentencias separadas por punto y coma>;
…
default:
<lista de sentencias separadas por punto y coma>;
}
Donde “expresión” es lo que vamos a evaluar y “valor” es contra lo que vamos a evaluar la expresión.
En palabras más sencillas, la sentencia switch evalúa la expresión que se compara con cada valor consecutivamente, hasta encontrar uno que coincida.
Cuando un valor coincide con la expresión se ejecutan las instrucciones de esa cláusula y el programa continúa con la siguiente sentencia.
Si queremos que solo se ejecuten las instrucciones del caso que coincida con la expresión, debemos poner un “break” como última instrucción en cada uno de ellos, lo que hace que se termine la ejecución de la sentencia switch al encontrar la coincidencia.
La instrucción “break” es opcional, pero la incluiremos siempre para ser metódicos.
En el último caso a evaluar no es necesaria la sentencia “break”, pues el programa saldrá de todas formas del switch.
Para tener en cuenta también los casos en los que no haya coincidencia, podemos optar por colocar la cláusula “default” dándole una serie de instrucciones que nos informe de la situación. Por ejemplo “No se ha hallado la expresión buscada”.
La cláusula “default”, igual que el “break”, es opcional y representa las instrucciones que se ejecutarán en caso de que no se verifique ninguno de los casos evaluados.
switch(5) {
case 4 + 1:
System.out.println("5");
break;
…………..
}
public class UsoInt{
public static void main(String[] args){
int num = 5;
String dayString;
// switch con tipo de datos int
switch (num){
case 1: dayString = "Lunes";
break;
case 2: dayString = "Martes";
break;
case 3: dayString = "Miercoles";
break;
case 4: dayString = "Jueves";
break;
case 5: dayString = "Viernes";
break;
case 6: dayString = "Sabado";
break;
case 7: dayString = "Domingo";
break;
default: dayString = "Dia inválido";
break;
}
System.out.println(dayString);
}
}