Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Sentencias Switch en Java | Operadores y Condicionales
Introducción a Java

Sentencias Switch en Java

Desliza para mostrar el menú

Hasta ahora, if, else y else if han sido las principales herramientas para manejar diferentes situaciones. Funcionan muy bien para comprobar condiciones, rangos o comparaciones.

Pero a veces no estamos comparando rangos en absoluto — solo queremos comprobar una variable contra varios valores exactos. Por ejemplo:

  • un cliente elige un método de pago;
  • una orden de café tiene un tipo de recogida específico;
  • un miembro de lealtad selecciona un nivel de recompensa.

Ahí es donde los sentencias switch resultan útiles — comparan un valor contra múltiples coincidencias exactas de una manera más limpia y organizada.

Estructura

switch (variable) {
    case "value1" -> {
        // code
    }

    case "value2" -> {
        // code
    }

    default -> {
        // fallback code
    }
}

Java verifica cada case uno por uno hasta encontrar una coincidencia.

Ejemplo

Main.java

Main.java

1234567891011121314151617181920212223242526
package com.example; public class Main { public static void main(String[] args) { String pickupType = "delivery"; switch (pickupType) { case "pickup": System.out.println("Your coffee will be ready at the counter"); break; case "delivery": System.out.println("Your coffee is on the way"); break; case "dine-in": System.out.println("Enjoy your coffee inside the cafe"); break; default: System.out.println("Unknown order type"); break; } } }

Java verifica pickupType caso por caso — "pickup" no coincide, "delivery" sí, por lo que imprime "Your coffee is on the way" y el break detiene inmediatamente el switch. El bloque default al final actúa como un else final — solo se ejecuta cuando ninguno de los casos coincide.

Java 14+ — Nueva sintaxis de switch

En Java 14 y versiones posteriores, se introdujo una sintaxis más reciente usando la flecha ->:

switch (pickupType) {
    case "pickup" -> System.out.println("Your coffee will be ready at the counter");
    case "delivery" -> System.out.println("Your coffee is on the way");
    case "dine-in" -> System.out.println("Enjoy your coffee inside the cafe");
    default -> System.out.println("Unknown order type");
}

Cambios realizados:

  • no se necesita break;
  • utiliza -> en lugar de :;
  • cada caso está automáticamente aislado — sin riesgo de caídas accidentales (fall-through);
  • sintaxis más limpia y fácil de leer.

Ambas versiones funcionan igual — la nueva sintaxis es simplemente más moderna y segura.

Regla útil para recordar:

  • Usar if / else if para comparaciones y rangos;
  • Usar switch al verificar un valor contra muchas opciones exactas;
question mark

¿Cuál es el propósito de la sentencia break dentro de un switch?

Selecciona la respuesta correcta

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 3. Capítulo 6

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

Sentencias Switch en Java

Hasta ahora, if, else y else if han sido las principales herramientas para manejar diferentes situaciones. Funcionan muy bien para comprobar condiciones, rangos o comparaciones.

Pero a veces no estamos comparando rangos en absoluto — solo queremos comprobar una variable contra varios valores exactos. Por ejemplo:

  • un cliente elige un método de pago;
  • una orden de café tiene un tipo de recogida específico;
  • un miembro de lealtad selecciona un nivel de recompensa.

Ahí es donde los sentencias switch resultan útiles — comparan un valor contra múltiples coincidencias exactas de una manera más limpia y organizada.

Estructura

switch (variable) {
    case "value1" -> {
        // code
    }

    case "value2" -> {
        // code
    }

    default -> {
        // fallback code
    }
}

Java verifica cada case uno por uno hasta encontrar una coincidencia.

Ejemplo

Main.java

Main.java

1234567891011121314151617181920212223242526
package com.example; public class Main { public static void main(String[] args) { String pickupType = "delivery"; switch (pickupType) { case "pickup": System.out.println("Your coffee will be ready at the counter"); break; case "delivery": System.out.println("Your coffee is on the way"); break; case "dine-in": System.out.println("Enjoy your coffee inside the cafe"); break; default: System.out.println("Unknown order type"); break; } } }

Java verifica pickupType caso por caso — "pickup" no coincide, "delivery" sí, por lo que imprime "Your coffee is on the way" y el break detiene inmediatamente el switch. El bloque default al final actúa como un else final — solo se ejecuta cuando ninguno de los casos coincide.

Java 14+ — Nueva sintaxis de switch

En Java 14 y versiones posteriores, se introdujo una sintaxis más reciente usando la flecha ->:

switch (pickupType) {
    case "pickup" -> System.out.println("Your coffee will be ready at the counter");
    case "delivery" -> System.out.println("Your coffee is on the way");
    case "dine-in" -> System.out.println("Enjoy your coffee inside the cafe");
    default -> System.out.println("Unknown order type");
}

Cambios realizados:

  • no se necesita break;
  • utiliza -> en lugar de :;
  • cada caso está automáticamente aislado — sin riesgo de caídas accidentales (fall-through);
  • sintaxis más limpia y fácil de leer.

Ambas versiones funcionan igual — la nueva sintaxis es simplemente más moderna y segura.

Regla útil para recordar:

  • Usar if / else if para comparaciones y rangos;
  • Usar switch al verificar un valor contra muchas opciones exactas;
¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 3. Capítulo 6
some-alt