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