Contenido del Curso
Principios Básicos de Java
Principios Básicos de Java
Sentencia Switch-Case
Manejo de Múltiples Condiciones Diferentes
Cuando tenemos muchas condiciones que comprobar, usar múltiples cadenas if-else
puede no ser conveniente.
Por ejemplo:
Main
package com.example; public class Main { public static void main(String[] args) { //you can change the value of variable "a" to test the if statement int a = 30; if (a == 10) { System.out.println(10); } else if (a == 20) { System.out.println(20); } else if (a == 30) { System.out.println(30); } else if (a == 40) { System.out.println(40); } else { System.out.println(a); } } }
Podemos ver que esto no parece limpio y profesional. Para estos casos, Java proporciona la sentencia switch-case.
Switch - Sentencia Case
La sentencia switch-case
consta de varias partes:
Main
switch(expresion) { case value_1: //code to be executed break; //optional case value_2: //code to be executed break; //optional ............. default: //code to be executed if all cases are not matched }
En el código anterior, puedes ver que usamos bloques switch para ejecutar operaciones selectivamente. Nos basamos en la expresión, que es ligeramente diferente de una condición. En ella, insertamos un valor o una expresión. Por ejemplo, 10 / 2. En este caso, el bloque case con la firma case 5 se ejecutará porque la expresión anterior es igual a 5.
También podemos utilizar una condición aquí. En ese caso, necesitamos escribir una expresión booleana en el bloque expression, y debería ser algo como esto 10 / 2 == 5
. A continuación, escriba dos casos a continuación:
Pero esta estructura será casi indistinguible de un if-else
normal.
La Keyword "break;"
Utilizamos esta keyword para terminar la ejecución de una sentencia switch-case
y salir de su cuerpo. Esta palabra se usa a menudo en loops, que discutiremos en los siguientes capítulos. Utilice esta keyword cuando necesite salir de un bloque de código y detener su ejecución.
Ahora vamos a mejorar el código que escribimos anteriormente utilizando la sentencia switch-case:
Main
package com.example; public class Main { public static void main(String[] args) { //you can change the value of variable "a" to test the switch statement int a = 30; switch (a) { case 10: System.out.println(10); break; case 20: System.out.println(20); break; case 30: System.out.println(30); break; case 40: System.out.println(40); break; default: System.out.println("there is no matching value"); } } }
Podemos ver cómo el código se ha vuelto mucho más limpio y fácil de leer y ampliar. No tenemos que escribir otra sentencia if
desde cero si necesitamos añadir condiciones adicionales. En su lugar, podemos añadir otro bloque case a nuestra sentencia switch-case
.
Veamos el esquema de bloques switch-case:
Como vemos, puede haber tantos casos como queramos. Cada caso requiere su propia condición y código, que se ejecutará cuando nuestro programa entre en el bloque case.
Es recomendable utilizar la palabra clave break;
porque el programa no saldrá del bloque switch hasta que se hayan ejecutado todos los bloques case. El bloque por defecto se ejecutará si no entramos en ninguno de nuestros bloques case o no usamos la keyword break;
.
Veamos otro ejemplo sin las keywords break;
:
Main
package com.example; public class Main { public static void main(String[] args) { //you can change the value of variable "a" to test the switch statement int a = 10; switch (a) { case 10: System.out.println(10); case 20: System.out.println(20); case 30: System.out.println(30); case 40: System.out.println(40); default: System.out.println("there is no matching value"); } } }
Hemos recibido múltiples valores, que difieren de lo que esperábamos. Además, hemos obtenido información de los bloques case 10
y default
. Esta es precisamente la razón por la que utilizamos la keyword break
después de cada bloque. De esta forma, el programa saldrá de la sentencia switch
y continuará su ejecución.
¡Gracias por tus comentarios!