Programmazione D - Istruzione Switch annidata

È possibile avere un interruttore come parte della sequenza di istruzioni di un interruttore esterno. Anche se le costanti maiuscole e minuscole dello switch interno ed esterno contengono valori comuni, non si verificano conflitti.

Sintassi

La sintassi per a nested switch l'affermazione è la seguente:

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 */ 
}

Esempio

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; 
}

Quando il codice precedente viene compilato ed eseguito, produce il seguente risultato:

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