Programación D - Declaración de conmutador anidado

Es posible tener un interruptor como parte de la secuencia de instrucciones de un interruptor externo. Incluso si las constantes de caso del conmutador interno y externo contienen valores comunes, no surgen conflictos.

Sintaxis

La sintaxis de un nested switch declaración es la siguiente:

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

Ejemplo

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

Cuando se compila y ejecuta el código anterior, produce el siguiente resultado:

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