Добавил:
2200 7008 9480 6099 TKFF БЛАГОДАРНОСТЬ МОЖНО ТУТ ОСТАВИТЬ Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ДИПЛОМ 2025 / 4 курса_МТУСИ / 1 КУРС / Информатика / С# для чайников - Мюллер.pdf
Скачиваний:
0
Добавлен:
04.06.2025
Размер:
53.3 Mб
Скачать

Конструкция switch

Зачастую возникает необходимость сравнивать одну переменную с разными значениями. Пусть, например, переменная maritalStatus равна О для обозна­ чения холостяков (незамужних), 1 - семейных, 2 - разведенных и 3 - вдов (вдовцов). Ну, и 4, если в анкете сказано, что это не наше дело. . . Для того что­ бы по-разному отреагировать на различные значения этой переменной, можно воспользоваться серией инструкций if:

:-

nгшх: ш6r ш

l

т

 

цц

 

 

,r

,

 

 

 

:- nгшщ: ш6r

ш

mr : т

 

цц

 

 

 

цц т " i

 

" " "

Как видите, получается весьма неуклюжая конструкция. Поскольку такие проверки - не редкость в программистской практике, в С# имеется специаль­ ная конструкция для выбора из множества взаимоисключающих условий. Она называется switch и работает следующим образом:

нt

:3 n)гшщ:

ш6r ш -

 

,

l

 

 

ц

 

 

ц ц

 

 

'х,шmi

 

 

, М l

 

 

 

цц

 

 

 

'щ,ш mi

 

 

, ч г

 

 

 

 

цц

 

 

 

'щ,шmi

 

 

, D l

n

т

 

 

ц ц

 

'щ,шmx

 

 

, u т у

 

 

 

цц

 

 

 

,,-ш

'х,ш mi

 

 

t

l

 

 

 

ц ц

i

 

 

 

цц

D

й

 

 

цц

 

 

цц

s

 

 

 

'щ,шmi

 

n

:

­

 

5 Управл

ение

потоком

л

с

аж

ГЛАВА

 

 

выпо нения

 

Сначала вычисляется выражение в круглых скобках после ключевого слова switch. В данном случае это просто значение переменной maritalStatus. За­ тем вычисленное значение сравнивается со значениями каждого из операторов case. Если нужное значение не найдено, управление передается операторам, следующим за меткой default. Аргументом оператора switch может быть так­ же строка string:

®

cwу aK

® уд

· сb­

s

 

bK lу' K

i у

uu

 

_lK б

bK lу.l

f у

uu

 

_lK б

bK lу/

уi

uu

 

_lK м

bK lу?

уf

uu

 

_lK щ

ilsK

f

uu

э

uu

 

При применении конструкции switch действует ряд ограничений.

ЗАПОМНИ!

))

Аргумент инструкции switch ( ) должен иметь перечислимый тип

 

или тип string. Нельзя использовать числа с плавающей точкой.

 

))

 

Значения case должны иметь тот же тип, что и аргумент инструкции

 

))

switch.

 

 

 

Значения case должны быть константами в том смысле, что их зна­

 

 

чения должны быть известны во время компиляции. (Инструкция

 

))

наподобие case х некорректна, если х не является константой.)

 

Каждая конструкция case должна завершаться оператором break

 

 

(или какой-то иной командой выхода, например return). Оператор

 

 

break передает управление за пределы конструкции switch.

 

 

Допускается отсутствие break у case в том случае, когда несколько

 

 

case приводят к одним и тем же действиям, т.е. одному блоку кода

 

 

соответствует несколько case, как в следующем примере:

 

 

®w

S

у aK

· уб

 

 

­

Sb­

­

 

 

 

в" bK

lуcK

®у i

Щ ЧАСТЬ 1 Основы программирования на С#

Соседние файлы в папке Информатика