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 'A1:

Console.WriteLine("ch содержит A"); break; case 'В':

Console.WriteLine("ch содержит В"); break; case 'С':

Console.WriteLine("ch содержит С"); break; case ' D' :

Console.WriteLine("ch содержит D"); break; case 'E':

Console.WriteLine("ch содержит E"); break;

}

}

}

Вот какой результат дает выполнение этой программы.

ch содержит А ch содержит В ch содержит С ch содержит D ch содержит Е

Обратите в данном примере внимание на отсутствие ветвиdefaultв оператореswitch.Напомним, что ветвьdefaultне является обязательной. Когда она не нужна, ее можно просто опустить.

Переход последовательности операторов, связанных с одной ветвьюcase,в следующую ветвьcaseсчитается ошибкой, поскольку в C# должно непременно соблюдаться правило недопущения "провалов" в передаче управления ходом выполнения программы. Именно поэтому последовательность операторов в каждой ветвиcaseоператораswitchоканчивается операторомbreak.(Избежать подобных "провалов", можно также с помощью оператора безусловного переходаgoto,рассматриваемого далее в этой главе, но для данной цели чаще применяется оператррbreak.)Когда

Перейти на страницу:

Похожие книги