HOWTO · Java

Cómo usar múltiples valores para una instrucción switch case en Java

En este artículo, aprenderemos a usar múltiples valores para una declaración switch case.

En esta página

En la programación en Java, la instrucción switch es una herramienta versátil para gestionar múltiples condiciones. Sin embargo, las implementaciones tradicionales suelen implicar redundancia al manejar el mismo código para varios valores.

Este artículo explora dos métodos para abordar este desafío. Primero, el método Multiple Case Labels agiliza la toma de decisiones al agrupar valores sin bloques de código separados.

Luego, el método Arrow Syntax, introducido en Java 14, ofrece una alternativa concisa. Estas técnicas mejoran la claridad y la eficiencia del código, especialmente al tratar escenarios como la categorización de los días de la semana. Profundicemos en estos métodos para simplificar el código y mejorar la legibilidad.

Usar dos o más valores para una instrucción switch-case

El método de etiquetas de casos múltiples ofrece una solución elegante a este desafío. En esta sección se explorará cómo este método mejora la claridad y la eficiencia del código al manejar múltiples valores dentro de una instrucción switch.

Imagine un escenario en el que desea categorizar los días de la semana según su posición. Usemos este método para lograrlo sin duplicar bloques de código.

public class DayOfWeekClassifier {
  public static void main(String[] args) {
    int day = 4; // Assume 1 represents Monday, 7 represents Sunday

    switch (day) {
      case 1:
      case 2:
      case 3:
      case 4:
      case 5:
        System.out.println("Weekday");
        break;
      case 6:
      case 7:
        System.out.println("Weekend");
        break;
      default:
        System.out.println("Invalid day");
    }
  }
}

Inicializamos una variable int llamada day con un valor de 4. La instrucción switch posterior evalúa el valor de day.

Los casos 1, 2, 3, 4 y 5 se enumeran secuencialmente sin bloques de código individuales. Cuando la variable day coincide con cualquiera de estos casos, se ejecuta el bloque de código que sigue inmediatamente a los casos.

Tenga en cuenta que no es necesario usar instrucciones break explícitas entre estos casos, lo que permite que el control fluya hasta el bloque de código común.

El bloque de código común, que sigue a los casos de días laborables, contiene la lógica que se ejecutará cuando day represente un día laborable. La ausencia de una instrucción break facilita el flujo hasta este bloque de código común, lo que minimiza la redundancia y mejora la organización del código.

Posteriormente, los casos 6 y 7 se enumeran juntos, cada uno con su propio bloque de código, especificando el comportamiento para cuando day represente un fin de semana.

El caso default opcional actúa como un comodín y ejecuta su bloque de código si ninguno de los casos especificados coincide con el valor de la variable.

Salida:

Weekday

Usar la sintaxis de flecha para usar múltiples valores para una instrucción switch-case

Java 14 introduce una nueva sintaxis para la instrucción switch-case. Los usuarios pueden agregar múltiples valores para un solo case separándolos por comas, y los usuarios deben colocar el código ejecutable entre llaves.

En esta sección, exploraremos la importancia de la sintaxis de flecha y demostraremos cómo simplifica el código, haciéndolo más legible y eficiente.

Considere una situación en la que desea categorizar los días de la semana según su posición. El método de sintaxis de flecha le permite lograrlo de manera concisa.

public class DayOfWeekClassifier {
  public static void main(String[] args) {
    int day = 4; // Assume 1 represents Monday, 7 represents Sunday

    switch (day) {
            case 1, 2, 3, 4, 5 -> System.out.println("Weekday");
            case 6, 7 -> System.out.println("Weekend");
            default -> System.out.println("Invalid day");
        }
    }
}

Inicializamos una variable int llamada day con un valor de 4. La instrucción switch posterior evalúa el valor de day.

La primera línea case utiliza la sintaxis de flecha para agrupar los valores 1, 2, 3, 4 y 5. Esto elimina la necesidad de bloques de código redundantes, y la flecha (->) asocia de forma sucinta este grupo de valores con el bloque de código siguiente.

De manera similar, la segunda línea case agrupa los valores 6 y 7 usando la sintaxis de flecha, lo que proporciona una forma limpia y expresiva de manejar múltiples valores en una sola línea.

El caso default actúa como un comodín y ejecuta su bloque de código si ninguno de los casos especificados coincide con el valor de la variable.

Salida:

Weekday

Conclusión

El manejo de múltiples valores dentro de una instrucción switch ha evolucionado. Los métodos Multiple Case Labels y Arrow Syntax ofrecen soluciones elegantes, que reducen la redundancia y mejoran la legibilidad del código.

El primer método agrupa los casos sin bloques separados, lo que permite un flujo de control fluido. Por otro lado, la sintaxis de flecha del segundo método condensa múltiples valores en una sola línea, ofreciendo una alternativa limpia y expresiva.

Ya sea agilizando la toma de decisiones o adoptando la sintaxis más reciente, estos métodos contribuyen a un código más limpio y eficiente. A medida que explore las complejidades de Java, considere incorporar estas técnicas para una experiencia de desarrollo más ágil.