Avatar ·

¿Por qué en C++ switch-case no se pueden declarar variables sin llaves?

¡Hola a todos! Acabo de empezar a aprender C++ después de Python, y me encontré con un problema extraño. Cuando escribo un switch-case normal, el compilador se queja de la declaración de variables dentro de case. Aquí hay un ejemplo de código que no me funciona: ```cpp #include int main() { int value = 2; switch (value) { case 1: int x = 10; // ¡Error! std::cout << "Case 1: " << x << std::endl; break; case 2: int y = 20; // ¡También error! std::cout << "Case 2: " << y << std::endl; break; default: std::cout << "Default" << std::endl; } return 0; } ``` El compilador (GCC) da errores como "jump to case label" y "crosses initialization of variable". Entiendo que switch-case no es una función ni un bloque de código, pero ¿por qué no se puede simplemente declarar una variable dentro de case? En Python o JavaScript funciona bien. Tengo que sacar las declaraciones de todas las variables