Avatar ·

Por que em C++ não é possível declarar variáveis dentro de um bloco switch sem chaves?

Olá a todos! Comecei a estudar C++ e me deparei com um erro muito estranho ao usar switch. Eu precisava escrever uma calculadora simples que executa diferentes operações dependendo do caractere inserido. Aqui está meu código: ```cpp #include using namespace std; int main() { char op; int a = 10, b = 5; cout << "Enter operation (+, -, *, /): "; cin >> op; switch (op) { case '+': int result = a + b; // Erro! cout << result; break; case '-': // ... break; } return 0; } ``` O compilador exibe um erro: "cannot jump from switch statement to this case label" ou algo como "initialization of 'result' is skipped by 'case' label". Eu entendo que switch funciona como goto e salta para o rótulo correto, mas por que não é possível declarar uma variável diretamente dentro de case? Afinal, estou escrevendo ela após os dois pontos, antes do próximo break. Qual é o problema e como declarar corretamente?