C # - Instructions de commutateur imbriquées

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.

Syntaxe

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

switch(ch1) {
   case 'A':
   Console.WriteLine("This A is part of outer switch" );
   
   switch(ch2) {
      case 'A':
         Console.WriteLine("This A is part of inner switch" );
         break;
      case 'B': /* inner B case code */
   }
   break;
   case 'B': /* outer B case code */
}

Exemple

using System;

namespace DecisionMaking {
   class Program {
      static void Main(string[] args) {
         int a = 100;
         int b = 200;
         
         switch (a) {
            case 100: 
            Console.WriteLine("This is part of outer switch ");
            
            switch (b) {
               case 200:
               Console.WriteLine("This is part of inner switch ");
               break;
            }
            break;
         }
         Console.WriteLine("Exact value of a is : {0}", a);
         Console.WriteLine("Exact value of b is : {0}", b);
         Console.ReadLine();
      }
   }
}

Lorsque le code ci-dessus est compilé et exécuté, il produit 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