switch Palabra clave en Java
La palabra clave switch
en Java se utiliza para ejecutar un bloque de código entre muchas alternativas. Es una sentencia de control que permite comprobar la igualdad de la variable con una lista de valores, cada uno con su propio bloque de código.
Utilización
La sentencia switch
proporciona una forma más limpia y legible de manejar múltiples ramas condicionales en comparación con el uso de múltiples sentencias if-else
.
Syntax
switch (expression) {
case value1:
// code block
break;
case value2:
// code block
break;
// more cases...
default:
// default code block
}
expression
: La variable o expresión cuyo valor se compara con los valores del caso.case value
: Un valor constante con el que se compara la expresión. Si coinciden, se ejecuta el bloque de código correspondiente.break
: Termina la declaraciónswitch
, evitando la caída.default
: Se ejecuta si ningún valor de caso coincide con la expresión.
Ejemplos
Ejemplo 1: Uso básico
public class SwitchExample {
public static void main(String[] args) {
int day = 3;
switch (day) {
case 1:
System.out.println("Monday");
break;
case 2:
System.out.println("Tuesday");
break;
case 3:
System.out.println("Wednesday");
break;
case 4:
System.out.println("Thursday");
break;
case 5:
System.out.println("Friday");
break;
case 6:
System.out.println("Saturday");
break;
case 7:
System.out.println("Sunday");
break;
default:
System.out.println("Invalid day");
}
}
}
En este ejemplo, la variable day
se compara con los valores del caso. Como day
es 3, la salida será "miércoles".
Ejemplo 2: Utilizar cadenas
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;
case "Cherry":
System.out.println("Fruit is Cherry");
break;
default:
System.out.println("Unknown fruit");
}
}
}
Este ejemplo muestra cómo utilizar una declaración switch
con valores String
. Como fruit
es "Manzana", la salida será "La fruta es Manzana".
Ejemplo 3: Comportamiento Fall-Through
public class SwitchFallThroughExample {
public static void main(String[] args) {
int num = 2;
switch (num) {
case 1:
System.out.println("One");
case 2:
System.out.println("Two");
case 3:
System.out.println("Three");
break;
default:
System.out.println("Default case");
}
}
}
En este ejemplo, la ausencia de declaraciones break
provoca un comportamiento de caída. Como num
es 2, la salida será:
Two
Three
Default case
Consejos y buenas prácticas
- Utiliza
break
Declaraciones: Utiliza siempre las declaracionesbreak
para evitar las caídas, a menos que se desee explícitamente. - Caso por defecto: Incluye un caso
default
para manejar valores inesperados. - Valores constantes: Asegúrate de que los valores de case son constantes o literales.
- Tipo Compatibilidad: La expresión
switch
puede ser de los tiposbyte
,short
,char
,int
,String
, o de un tipo enum. Asegúrate de que los valores de caso son compatibles con el tipo de la expresión. - Código legible: Utiliza las sentencias
switch
para que tu código sea más legible y fácil de mantener en comparación con las múltiples sentenciasif-else
. - Mejoras de Java 12: A partir de Java 12, puedes utilizar expresiones de conmutación para devolver valores directamente de los casos, lo que simplifica la sintaxis y mejora la legibilidad del código.
enum Day {
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}
public class SwitchEnumExample {
public static void main(String[] args) {
Day day = Day.WEDNESDAY;
switch (day) {
case MONDAY:
System.out.println("Monday");
break;
case TUESDAY:
System.out.println("Tuesday");
break;
case WEDNESDAY:
System.out.println("Wednesday");
break;
case THURSDAY:
System.out.println("Thursday");
break;
case FRIDAY:
System.out.println("Friday");
break;
case SATURDAY:
System.out.println("Saturday");
break;
case SUNDAY:
System.out.println("Sunday");
break;
}
}
}
Utilizar enums en las sentencias switch
puede mejorar la legibilidad del código y la seguridad de tipos.