Компьютерные книги
Главное меню
Главная Поиск по сайту Добавить материал О нас Карта книг Карта сайта
Реклама
computersbooks.net -> Добавить материал -> Языки программирования -> Ватсон К. -> "С#" -> 35

С# - Ватсон К.

Ватсон К. С# — Лори, 2005 . — 879 c.
ISBN 1-861004-98-2
Скачать (прямая ссылка): vatsonc2005.pdf
Предыдущая << 1 .. 29 30 31 32 33 34 < 35 > 36 37 38 39 40 41 .. 404 >> Следующая


Оператор switch

Оператор switch очень похож на оператор if в том смысле, что он также обеспечивает условное выполнение кода в зависимости от результата выполненной проверки. Однако оператор switch позволяет производить проверку для многих значений переменной за один проход вместо того, чтобы проверять всего лишь одно условие. Эти проверки ограничены отдельными значениями и не допускают конструкций типа “больше, чем X”, поэтому их использование имеет некоторые отличия; однако такой способ является очень эффективным.

Принципиальная структура оператора switch имеет следующий вид:

switch (<контрольнляПереыенаая>)

{

case <эначепие1>:

<коД, который должен выполняться я том случае,

если <i нтрол!;: яПоцдоюя! я> " <знвчеюге1» > breakj -

case <значение2>:

<код, который должен выполняться в тон случае,

если <контрольнаяПвр& шн&я> -= <значение?> >

break;
62

Глава 4

i

слав <знзчакна№-:

<код, который должен выполняться в том случае,

если <конзроаышя0ервмвнная> == <значение^ >

breakj -

default:.

, <код, который должен выполняться а там Случае,

если <хоятропьнаяПереыеннвя> I ¦ ни одному из эначений>

break) -

Значение, которым обладает <контрольнаяПеременная>1 сравнивается со всеми значениями <эначениех>, каждое из которых имеет свой собственный оператор сазе; в случае совпадения значений выполняется код, предусмотренный для данного условия. Если ни одно из значений не совпало, будет выполняться код из раздела default (прн условии, что этот блок не пуст). После завершения выполнения кода в некотором разделе выполняется еще одна команда — break. В случае выполие-ния кода в одном из блоков case переход к выполнению другого оператора case не происходит.

Такая логина выполнения программы является одним из отличий языка C# от языка C++, в котором, при обработке операторов case разрешается переходить от выполнения одного оператора к выполнению другого.

Оператор break в данном случае просто прерывает выполнение оператора switch, и работа программы продолжается со следующего оператора.

В программе на C# имеются и другие способы избежать передачи управления от одного оператора case другому. Мы можем использовать либо оператор return, который приведет к прерыванию выполнения текущей функции, а не просто оператора switch (более подробно об этом будет рассказано в главе 6), либо оператор goto. Оператор goto (он описан выше) в данном случае будет работать, поскольку операторы case в программе на C# фактически выполняют роль меток. Например:

switch (<контрольнаяПереыенна-гт>)

<

case <эначение1>:

<код, который должен выполняться в том случае,

если <хонтрольнаяПереиенная> == <эначение1> > goto case она тениe2>i case оначеггие2>;

<код, который должен выполняться в том случае,

если осонтрольнаяПеременная» == <эн^ченив2> >

break;

Имеется единственное исключение нз общего правила, гласящего, что после выполнения одного оператора case не может выполняться другой оператор case. Если мы разместим несколько операторов case подряд (объединим их) перед каким-либо блоком кода, мы фактически организуем одновременное выполнение проверки нескольких условий. Если хотя бы одно из этих условий окажется выполненным, то управление будет передано на этот блок кода. Например:

switch (<контрольнаяПереыеннгит>)

I

case <эначекие1>: ease <эначение2>:

ос од, который должен выполняться а тон случае,

если <контрольнаяПеременная> =“ <эначение1> или <контрояьнаяПеременная> == <эндчение2> >

break;
Управление порядком выполнения

63

Обратите внимание, что эти условия также относятся н к оператору default. Не существует никакого правила, требующего, чтобы этот оператор обязательно находился в конце всего перечня сравнений, и при желании мы можем объединять его с операторами севе. Включение оператора, прерывающего нормальное выполнение программы — break, o°to илн return,— гарантирует правильную последовательность выполняемых действий в любом случае.

Все переменные <эыачениех>, использующиеся для сравнений, должны иметь постоянное значение. Один из способом добиться этого — применение литеральных значений:

switch (щ/Xntcger)

{ .

caee 1: . ‘

«ГОД/ который должен выполняться в tow случае, веян щуХпСадег ~ 1 > break; . .

case —1:

<код, Topi4f' -тжвн выполняться в том случял, еслищуInteger “*> —1 > . , break; . . , .

default: - ¦

«код, который должен ir аюлвяться в таи сцучае, '

если mylnteger J- ни одному иэ значений,

, использовавшихся для сравнениям

break;

Другой способ получить постоянные значения переменных — это использование переменных-констант. Переменные-константы являются точно такими же переменными, как и все остальные, за исключением одного ключевого момента: значение, которое в них содержится, не может быть изменено ни при каких условиях. После того как мы присвоили переменной-константе какое-либо значение, оно будет оставаться неизменным на протяжении выполнения всей программы, Переменные-константы могут оказаться удобными в данном случае, поскольку зачастую код легче понимать, когда используемые для сравнения значения ие видны в момент выполнения сравнения.
Предыдущая << 1 .. 29 30 31 32 33 34 < 35 > 36 37 38 39 40 41 .. 404 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

Эком "Microsoft Excel 2000 шаг за шагом Русская версия самоучитель " (Самоучитель)

Поляков А.Ю. "Методы и алгоритмы компьютерной графики в примерах Vizual C++" (Графика)

Баяковский Ю.М. "Графическая библиотека Open GL " (Графика)

Валиков А. "Технология " (Языки программирования)
Авторские права © 2013 ComputersBooks. Все права защищены.