Instructions de commutation imbriquées C ++

Il est possible d'avoir un commutateur dans le cadre de la séquence d'instructions d'un commutateur externe. Même si les constantes de cas du commutateur interne et externe contiennent des valeurs communes, aucun conflit ne surviendra.

C ++ spécifie qu'au moins 256 niveaux d'imbrication sont autorisés pour les instructions switch.

Syntaxe

La syntaxe d'un nested switch la déclaration est la suivante -

switch(ch1) {
   case 'A': 
      cout << "This A is part of outer switch";
      switch(ch2) {
         case 'A':
            cout << "This A is part of inner switch";
            break;
         case 'B': // ...
      }
      break;
   case 'B': // ...
}

Exemple

#include <iostream>
using namespace std;
 
int main () {
   // local variable declaration:
   int a = 100;
   int b = 200;
 
   switch(a) {
      case 100: 
         cout << "This is part of outer switch" << endl;
         switch(b) {
            case 200:
               cout << "This is part of inner switch" << endl;
         }
   }
   cout << "Exact value of a is : " << a << endl;
   cout << "Exact value of b is : " << b << endl;
 
   return 0;
}

Cela produirait le résultat suivant -

This is part of outer switch
This is part of inner switch
Exact value of a is : 100
Exact value of b is : 200