switch en Java (condicional de selección).
CONDICIONAL DE SELECCIÓN SWITCH EN JAVA. EJEMPLO DE APLICACIÓN.
La instrucción switch es una forma de expresión de un anidamiento múltiple de instrucciones if ... else. Su uso no puede considerarse, por tanto, estrictamente necesario, puesto que siempre podrá ser sustituida por el uso de if. No obstante, a veces nos resultará útil al introducir mayor claridad en el código.
La sintaxis será:
/* Ejemplo Switch - aprenderaprogramar.com */
switch (expresión) {
case valor1:
instrucciones;
break;
case valor2:
instrucciones;
break;
.
.
.
default:
sentencias;
break;
}
|
/* Ejemplo Switch - aprenderaprogramar.com */
switch (expresión) {
case valor1:
case valor2:
case valor3:
instrucciones;
break;
case valor4:
instrucciones;
break;
.
.
.
default:
sentencias;
break;
}
|
Esquemáticamente en forma de diagrama de flujo:
La cláusula default es opcional y representa las instrucciones que se ejecutarán en caso de que no se verifique ninguno de los casos evaluados. El último break dentro de un switch (en default si existe esta cláusula, o en el último caso evaluado si no existe default) también es opcional, pero lo incluiremos siempre para ser metódicos.
Switch solo se puede utilizar para evaluar ordinales (por ordinal entenderemos en general valores numéricos enteros o datos que se puedan asimilar a valores numéricos enteros). Por tanto no podemos evaluar cadenas (String) usando switch porque el compilador nos devolverá un error de tipo “found java.lang.String but expected int”. Sí se permite evaluar caracteres y lo que se denominan tipos enumerados, que veremos más adelante. Switch solo permite evaluar valores concretos de la expresión: no permite evaluar intervalos (pertenencia de la expresión a un intervalo o rango) ni expresiones compuestas. Código de ejemplo:
/* Ejemplo método que usa switch - aprenderaprogramar.com */
public void dimeSiEdadEsCritica() {
switch (edad) {
case 0:
System.out.println ("Acaba de nacer hace poco. No ha cumplido el año");
break;
case 18: System.out.println ("Está justo en la mayoría de edad"); break;
case 65: System.out.println ("Está en la edad de jubilación"); break;
default: System.out.println ("La edad no es crítica"); break;
}
}
|
En algunos casos escribimos varias instrucciones en una línea y en otros una sola instrucción por línea. Ambas posibilidades son válidas. Prueba a escribir, compilar e invocar este método o uno parecido usando switch. Para ello crea primero una clase de nombre Persona cuyos atributos sean nombre y edad. Inicializa los atributos a un valor por defecto en el constructor. Crea métodos para definir valor para los atributos (métodos setters) y prueba el método dimeSiEdadEsCritica para comprobar que responde como es de esperar.
No hay comentarios:
Publicar un comentario