D Programming - Nested Switch Statement



It is possible to have a switch as part of the statement sequence of an outer switch. Even if the case constants of the inner and outer switch contain common values, no conflicts arises.

Syntax

The syntax for a nested switch statement is as follows −

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

Example

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

When the above code is compiled and executed, it produces the following result −

This is part of outer switch 
This is part of inner switch 
Exact value of a is : 100 
Exact value of b is : 200 
d_programming_decisions.htm
Advertisements