Avatar ·

Por que em C++ switch-case não é possível declarar variáveis sem chaves?

Olá a todos! Comecei a estudar C++ depois de Python e me deparei com um problema estranho. Quando escrevo um switch-case comum, o compilador reclama da declaração de variáveis dentro de case. Aqui está um exemplo de código que não funciona: ```cpp #include int main() { int value = 2; switch (value) { case 1: int x = 10; // Erro! std::cout << "Case 1: " << x << std::endl; break; case 2: int y = 20; // Também erro! std::cout << "Case 2: " << y << std::endl; break; default: std::cout << "Default" << std::endl; } return 0; } ``` O compilador (GCC) gera erros como "jump to case label" e "crosses initialization of variable". Eu entendo que switch-case não é uma função nem um bloco de código, mas por que não posso simplesmente declarar uma variável dentro de case? Afinal, em Python ou JavaScript isso funciona normalmente. Tenho que colocar todas as declarações de variáveis