Programação D - Instrução Switch Aninhada

É possível ter um switch como parte da sequência de instruções de um switch externo. Mesmo se as constantes case do switch interno e externo contiverem valores comuns, nenhum conflito surge.

Sintaxe

A sintaxe para um nested switch declaração é a seguinte -

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

Exemplo

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 o código acima é compilado e executado, ele produz o seguinte 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