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
1234567891011121314151617181920212223242526package 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 ifpara comparaciones y rangos; - Usar
switchal verificar un valor contra muchas opciones exactas;
¡Gracias por tus comentarios!
Pregunte a AI
Pregunte a AI
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
1234567891011121314151617181920212223242526package 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 ifpara comparaciones y rangos; - Usar
switchal verificar un valor contra muchas opciones exactas;
¡Gracias por tus comentarios!