Programmation D - Instruction de commutateur imbriqué

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 survient.

Syntaxe

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

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

Exemple

import std.stdio;

int main () { 
   /* local variable definition */ 
   int a = 100; 
   int b = 200;  
   
   switch(a) {
      case 100: 
         writefln("This is part of outer switch", a ); 
         switch(b) { 
            case 200: 
               writefln("This is part of inner switch", a ); 
            default: 
               break; 
         } 
      default: 
      break; 
   } 
   writefln("Exact value of a is : %d", a ); 
   writefln("Exact value of b is : %d", b ); 
  
   return 0; 
}

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