Saltar al contenido principal
Documentos
Java keywordsMatrices JavaProgramación orientada a objetos en JavaJava File HandlingIntroducción a JavaConceptos básicos del lenguaje Java

Declaración de conmutación de Java

La sentencia switch en Java es una sentencia de flujo de control que permite la ejecución de un bloque de código entre múltiples alternativas. Proporciona una forma más legible y eficaz de escribir una serie de sentencias if-else cuando se compara la misma expresión con distintos valores.

Utilización

La sentencia switch evalúa una expresión, compara el valor de la expresión con una serie de etiquetas case y ejecuta el bloque de código asociado a la coincidencia case. Si no coincide ningún case, se ejecuta el bloque default, si está presente.

Syntax

switch (expression) {
    case value1:
        // code block
        break;
    case value2:
        // code block
        break;
    // more cases...
    default:
        // default code block
}
  • expresión: Una variable o expresión que se evalúa una vez.
  • valor1, valor2, ...: Expresiones constantes con las que se compara el expression.
  • romper: Finaliza el bloque switch. Sin ella, la ejecución pasa a casos posteriores.
  • por defecto: Bloque opcional que se ejecuta si no coincide ningún case.

Ejemplos

Ejemplo 1: Básico switch Declaración

public class SwitchExample {
    public static void main(String[] args) {
        int number = 2;
        switch (number) {
            case 1:
                System.out.println("One");
                break;
            case 2:
                System.out.println("Two");
                break;
            case 3:
                System.out.println("Three");
                break;
            default:
                System.out.println("Not in range");
        }
    }
}

En este ejemplo, la sentencia switch evalúa la variable number. Como number es igual a 2, la salida será "Dos". La declaración break evita que se transmita a casos posteriores.

Ejemplo 2: switch con Cuerdas

public class SwitchStringExample {
    public static void main(String[] args) {
        String fruit = "Apple";
        switch (fruit) {
            case "Apple":
                System.out.println("Fruit is Apple");
                break;
            case "Banana":
                System.out.println("Fruit is Banana");
                break;
            default:
                System.out.println("Unknown fruit");
        }
    }
}

Este ejemplo demuestra el uso de una sentencia switch con una String. El switch comprueba el valor de fruit, y como es "Manzana", la salida será "La fruta es Manzana".

Ejemplo 3: switch sin break

public class SwitchFallThroughExample {
    public static void main(String[] args) {
        int day = 3;
        switch (day) {
            case 1:
            case 2:
            case 3:
                System.out.println("Weekday");
                break;
            case 4:
            case 5:
                System.out.println("Weekend");
                break;
            default:
                System.out.println("Invalid day");
        }
    }
}

En este ejemplo, se utilizan varias etiquetas case para ejecutar el mismo bloque de código. La salida será "Día laborable" porque day es 3, y la sentencia break impide que la ejecución caiga en los casos de "Fin de semana".

Consejos y buenas prácticas

  • Utiliza break Declaraciones: Incluye siempre las declaraciones break a menos que se desee una caída intencionada. Esto evita la ejecución involuntaria de casos posteriores.
  • Caso por defecto: Incluye un caso default para manejar valores inesperados y mejorar la robustez del código.
  • Tipos de expresión: La expresión switch puede ser del tipo byte, short, int, char, String, o un enum.
  • Evita la lógica compleja: Utiliza switch para escenarios sencillos con valores discretos. Para condiciones complejas, considera la posibilidad de utilizar declaraciones if-else.
  • Mejoras de Java 12+: En Java 12 y posteriores, las expresiones de conmutación permiten devolver valores y utilizar la palabra clave yield para obtener un código más conciso.

Aprende Java Essentials

Desarrolla tus conocimientos de Java desde la base y domina los conceptos de programación.
Empieza a aprender gratis