¿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
No answers yet.
Inicia sesión para dejar una respuesta
Blogs