switch (выражение) {
case константа1:
последовательность операторов
break;
case константа2:
последовательность операторов
break;
case константаЗ:
последовательность операторов
break;
.
.
.
default:
последовательность операторов
break;
}
Заданное выражение в операторе switch
должно быть целочисленного типа ( char, byte, short или int
), перечислимого или же строкового. (О перечислениях и символьных строках типа string
речь пойдет далее в этой книге.) А выражения других типов, например с плавающей точкой, в операторе switch
не допускаются. Зачастую выражение, управляющее оператором switch
, просто сводится к одной переменной. Кроме того, константы выбора должны иметь тип, совместимый с типом выражения. В одном операторе switch не допускается наличие двух одинаковых по значению констант выбора.
Последовательность операторов из ветви default
выполняется в том случае, если ни одна из констант выбора не совпадает с заданным выражением. Ветвь default
не является обязательной. Если же она отсутствует и выражение не совпадает ни с одним из условий выбора, то никаких действий вообще не выполняется. Если же происходит совпадение с одним из условий выбора, то выполняются операторы, связанные с этим условием, вплоть до оператора break
.
Ниже приведен пример программы, в котором демонстрируется применение оператора switch
.
// Продемонстрировать применение оператора switch.
using System;
class SwitchDemo {
static void Main() {
int i;
for(i=0; i<10; i++)
switch(i) {
case 0:
Console.WriteLine("i равно нулю");
break;
case 1:
Console.WriteLine("i равно единице");
break;
case 2:
Console.WriteLine("i равно двум");
break;
case 3:
Console.WriteLine("i равно трем");
break;
case 4:
Console.WriteLine ("i равно четырем");
break;
default:
Console.WriteLine("i равно или больше пяти");
break;
}
}
}
Результат выполнения этой программы выглядит следующим образом.
i равно нулю.
i равно единице.
i равно двум.
i равно трем.
i равно четырем.
i равно или больше пяти
i равно или больше пяти
i равно или больше пяти
i равно или больше пяти
i равно или больше пяти
Как видите, на каждом шаге цикла выполняются операторы, связанные с совпадающей константой выбора, в обход всех остальных операторов. Когда же значение переменной i становится равным или больше пяти, то оно не совпадает ни с одной из констант выбора, а следовательно, выполняются операторы из ветви default.
В приведенном выше примере оператором switch
управляла переменная i типа int
. Как пояснялось ранее, для управления оператором switch
может быть использовано выражений любого целочисленного типа, включая и char
. Ниже приведен пример применения выражения и констант выбора типа char
в операторе switch.
// Использовать элементы типа char для управления оператором switch.
using System;
class SwitchDemo2 {
static void Main() {
char ch;
for(ch='A'; ch<= 'E'; ch++)
switch (ch) {
case 'A':
Console.WriteLine("ch содержит A");
break;
case 'B':
Console.WriteLine("ch содержит В");
break;
case 'C':
Console.WriteLine("ch содержит С");
break;
case 'D' :
Console.WriteLine("ch содержит D");
break;
case 'E':
Console.WriteLine("ch содержит E");
break;
Читать дальше