Codificación aprenderaprogramar.com: CU00637B
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.
EJERCICIO
Considera estás desarrollando un programa Java donde necesitas trabajar con objetos de tipo Motor (que representa el motor de una bomba para mover fluidos). Define una clase Motor considerando los siguientes atributos de clase: tipoBomba (int), tipoFluido (String), combustible (String). Define un constructor asignando unos valores de defecto a los atributos y los métodos para poder establecer y obtener los valores de los atributos. Crea un método tipo procedimiento denominado dimeTipoMotor() donde a través de un condicional switch hagas lo siguiente:
a) Si el tipo de motor es 0, mostrar un mensaje por consola indicando “No hay establecido un valor definido para el tipo de bomba”.
b) Si el tipo de motor es 1, mostrar un mensaje por consola indicando “La bomba es una bomba de agua”.
c) Si el tipo de motor es 2, mostrar un mensaje por consola indicando “La bomba es una bomba de gasolina”.
d) Si el tipo de motor es 3, mostrar un mensaje por consola indicando “La bomba es una bomba de hormigón”.
e) Si el tipo de motor es 4,mostrar un mensaje por consola indicando “La bomba es una bomba de pasta alimenticia”.
f) Si no se cumple ninguno de los valores anteriores mostrar el mensaje “No existe un valor válido para tipo de bomba”.
Compila el código para comprobar que no presenta errores, crea un objeto, usa sus métodos y comprueba que aparezcan correctamente los mensajes por consola. Para comprobar si es correcta tu solución puedes consultar en los foros aprenderaprogramar.com.
Para acceder a la información general sobre este curso y al listado completo de entregas pulsa en este link: Ver curso completo.
Para hacer un comentario o consulta utiliza los foros aprenderaprogramar.com, abiertos a cualquier persona independientemente de su nivel de conocimiento.