Contenido del Curso
Fundamentos de Java
Fundamentos de Java
Sentencia Switch-Case
Manejo de múltiples condiciones diferentes
Cuando tenemos muchas condiciones que verificar, usar múltiples cadenas de 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 the 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 ni profesional. Para estos casos, Java proporciona la sentencia switch-case
.
Sentencia switch-case
La sentencia switch-case
consta de varias partes:
Main
switch (expression) { case value_1: // Code to be executed if expression matches `value_1` break; // Break is used to exit the `switch` statement. case value_2: // Code to be executed if expression matches `value_2` break; // Break is used to exit the `switch` statement. ............ default: // Code to be executed if no cases match // Optional, but executed if no other case matches }
En el código anterior, se puede observar que utilizamos bloques switch para ejecutar operaciones de manera selectiva. Dependemos de la expresión, que es ligeramente diferente de una condición. Allí, insertamos un valor o una expresión. Por ejemplo, 10 / 2
. En este caso, se ejecutará el bloque case con la firma case 5
porque la expresión anterior es igual a 5.
También podemos utilizar una condición aquí. En ese caso, debemos escribir una expresión booleana en el bloque de expresión, y debería verse de la siguiente manera: 10 / 2 == 5
. Luego, escriba dos casos a continuación:
java
Pero esta estructura será casi indistinguible de un if-else
regular.
La palabra clave "break"
Utilizamos esta palabra clave para terminar la ejecución de una sentencia switch-case
y salir de su cuerpo. Esta palabra se utiliza frecuentemente en bucles, los cuales se abordarán en los siguientes capítulos. Utilice esta palabra clave cuando sea necesario salir de un bloque de código y detener su ejecución.
Ahora mejoremos 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 the 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 observar cómo el código se ha vuelto mucho más limpio y fácil de leer y ampliar. No es necesario escribir otra sentencia if
desde cero si necesitamos agregar condiciones adicionales. En su lugar, simplemente se añade otro bloque case a nuestra switch-case statement
.
Veamos el esquema del bloque switch-case
:
Como podemos observar, puede haber tantos casos como deseemos. Cada caso requiere su propia condición y código, que se ejecutará cuando el programa ingrese al bloque del caso.
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 default se ejecutará si no se ingresa a ninguno de los bloques case o no se utiliza la palabra clave break
.
Veamos otro ejemplo sin palabras clave break
:
Main
package com.example; public class Main { public static void main(String[] args) { // You can change the value of the 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, obtuvimos información de los bloques case 10
y default
. Precisamente por esto utilizamos la palabra clave break
después de cada bloque. De esta manera, el programa saldrá de la sentencia switch
y continuará su ejecución.
1. ¿Qué se mostrará en la consola?
2. ¿Por qué necesitamos la palabra clave break
?
¡Gracias por tus comentarios!