Switch
Java dispone de la sentencia switch. Su sintaxis es la siguiente:
switch (expresion){
case valor1:
// bloque de instrucciones 1
case valor2:
// bloque de instrucciones 2
...
case valorN:
// bloque de instrucciones n
default:
// bloque de instrucciones por defecto
}
La evaluación de la expresión debe dar un resultado entero, convertible a entero o valor de tipo String. La cláusula default es opcional. La dinámica del switch es la siguiente:

Vemos un ejemplo sencillo:
int a = 8;
switch(a){
case 1:
System.out.print("a");
case 5:
System.out.print("b");
case 8:
System.out.print("c");
case 9:
System.out.print("d");
case 11:
System.out.print("e");
default:
System.out.print("f");
}
- Evaluamos la expresión principal: en este caso el resultado es 8.
- Comprobamos uno a uno el valor de cada
case. En este caso solo el tercercasetiene asociado el valor 8. - Se ejecuta el conjunto de instrucciones desde el tercer
casehasta el final. Por lo tanto se imprime:cdef.
Como puede verse, dependiendo del orden en que coloquemos las cláusulas case, se ejecutarán unas instrucciones u otras.
Si queremos que solo se ejecute un bloque, debemos utilizar la sentencia break tras cada bloque de instrucciones.
switch (expresion){
case valor1:
// bloque de instrucciones 1
break;
case valor22:
// bloque de instrucciones 2
break;
...
case valorN:
// bloque de instrucciones n
break;
default:
// bloque de instrucciones por defecto
break;
}

Vemos un ejemplo sencillo:
int a = 8;
switch(a){
case 1:
System.out.print("a");
break;
case 5:
System.out.print("b");
break;
case 8:
System.out.print("c");
break;
case 9:
System.out.print("d");
break;
case 11:
System.out.print("e");
break;
default:
System.out.print("f");
break;
}
De este modo solo se imprimiría: c.