Допустимо иметь switch как часть последовательности операторов внешнего switch. Даже если case-константы внутреннего и внешнего switch содержат общие значения, конфликтов не возникает.
Синтаксис для вложенного оператора switch выглядит следующим образом:
switch(ch1) { case 'A': writefln("Эта A является частью внешнего switch" ); switch(ch2) { case 'A': writefln("Эта A является частью внутреннего switch" ); break; case 'B': /* case-код */ break; default: break; } break; case 'B': /* case-код */ break; default: break; }
import std.stdio; int main () { /* Определение локальных переменных */ int a = 100; int b = 200; switch(a) { case 100: writefln("Это часть внешнего switch", a ); switch(b) { case 200: writefln("Это часть внутреннего switch", a ); break; default: break; } break; default: break; } writefln("Точное значение a равно: %d", a ); writefln("Точное значение b равно: %d", b ); return 0; }
Когда вы скомпилируете и выполните эту программу, она возвратит следующий результат:
Это часть внешнего switch Это часть внутреннего switch Точное значение a равно: 100 Точное значение b равно: 200