JavaPrincipiante7 oct 2025
El Switch que se Resiste a Morir
snippet.java
public class SwitchWTF {
public static void main(String[] args) {
String result = "";
int value = 2;
switch (value) {
case 1: result += "Uno";
case 2: result += "Dos";
case 3: result += "Tres";
default: result += "Default";
}
System.out.println(result);
}
}¿Qué crees que imprime?
✅ Salida Esperada
Dos⚠️ Salida Real
DosTresDefault¿Por qué pasa esto?
**¡Fall-through en acción!** 🎭 Java tiene un comportamiento peculiar en los switch statements:
- Cuando un case coincide, ejecuta **todas** las instrucciones siguientes hasta encontrar un `break`
- Es como si tu código fuera un tren expreso que no para en las estaciones 🚄
- Aquí `case 2` coincide, pero sigue ejecutando `case 3` y `default`
- **No hay breaks**: El código 'cae' a través de todos los casos siguientes
**Solución**: Usa `break` después de cada case para evitar esta cascada de ejecución. ¡O prepárate para sorpresas! 😅
Conceptos relacionados
switchfallthroughcontrol-flow