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 declaracionesbreak
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 tipobyte
,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 declaracionesif-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.