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,

Example

#include<iostream>
using namespace std;

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

Output

This will give the output:

13

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.

Updated on: 27-Jan-2020

676 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements