Construcción
sintáctica muy compacta para representar la ejecución de una entre varias
sentencias dependiendo de un valor:
ejemplo |
ejemplo |
switch
(mes) { case
1: print(“enero”); break; case
2: print(“febrero”); break; ...
default:
print(“no se”); |
switch
(mes) { case
1: case 3: case 5: case 7: case
8: case 10: case 12: dias = 31; break; case
4: case 6: case 9: case 11: dias = 30; break; case
2: if (bisiesto) dias = 29; else dias = 28; break; default:
dias = 0; } |
·
Sólo
funcionan sobre enteros, booleanos o caracteres
· Chequean que no hay duplicados
·
las
condiciones tienen que ser excluyentes
· Mejor legibilidad
·
Sin “break”,
el programa no saltaría al final
·
El “default”
es opcional; si no aparece, no se ejecuta nada
Las sentencias “break”
provocan la terminación de la sentencia condicional. Si no se aparece, el
código siguiente se sigue ejecutando.
Switcher.java |
public
class Switcher { public static void main(String[]
argumentos) { int m = Integer.parseInt(argumentos[0]); int n = 0; switch (m) { case 0: n++; case 1: n++; case 2: n++; default: n++; } System.out.println("n = " + n); } } |
$
java Switcher 0 n
= 4 $
java Switcher 1 n
= 3 $
java Switcher 2 n
= 2 $
java Switcher 3 n
= 1 $
java Switcher 100 n
= 1 |
Temas relacionados