Why can't variables be declared in a switch statement in C/C++?

Variables can be declared in a switch statement. You'll just need to declare them and use them within a new scope in the switch statement. For example,


using namespace std;

int main() {
   int i = 10;
   switch(i) {
      case 2:
      //some code
      case 10:{
         int x = 13;
         cout << x;
   return 0;


This will give the output:


If you try to declare the variable out in the open you might get an error as Jumping to a case label is the same as using goto, so you aren't allowed to jump over a local variable declaration while you're in the same scope as it and might be using it someplace further in that scope.