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

С# - Ватсон К.

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


Операторы goto используются на практике, но они могут приводить к очень большой путанице.

В качестве примера “лоскутного” кода, получающегося при использовании оператора goto, рассмотрим следующую программу:

start:

int mylntei г * 5) goto addValj writeResulti

Console.WriteLine(*myInteger = CO}"a mylnteger)j
Управление порядком выполнения 57

. goto start; . S*
addVal: ,
. mylnteger += lOj ¦
. goto writeReeulti

Это вполне допустимый код, но как трудно в нем разобраться! Вы можете самостоятельно попрактиковаться и попытаться понять, что здесь происходит. Однако прежде чем приступить к этому, попробуйте понять смысл данного кода, просто взглянув на него. Вы заслуживаете похвалы, если вам удалось это сделать.

Мы еще вернемся к этому оператору, поскольку он предназначен для совместного использования с некоторыми другими конструкциями, рассматриваемыми в настоящей главе (хотя, по правде говоря, автор не является сторонником его использования).

Ветвление

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

В этом разделе мы рассмотрим три способа ветвления, имеющихся в С#:

? Тринарный оператор

? Оператор if

? Оператор switch

Тринарный оператор

Наиболее простой способ выполнения проверки — использование трннарного (илн условного) оператора, упоминавшегося в предыдущей главе. Вы уже познакомились с унарными операторами, которые выполняются над одним операндом, и бинарными операторами, которые выполняются над двумя операндами, поэтому у вас вряд ли вызовет удивление тот факт, что данный оператор выполняется над тремя операндами. Синтаксис трннарного оператора имеет следующий вид:

<лроаеряал 7 <результатЕслиИстина> г <реэультатЕслхЛохь>

В данном случае условие <проверка> вычисляется для получения логического значения, н в зависимости от него результатом выполнения этого оператора будет <результатЕслиИстина> ИЛИ <результ&тЕслиЛояь>.

Мы можем использовать этот оператор следующим образом:

etring resultString • (mylnteger <10] ? 'Неньже 10*

: 'Вольже или равно 10*1

Результатом выполнения трннарного оператора будет одна нз двух строк, каждая из которых может быть присвоена переменной reauitstring. Выбор того, какую именно из этих двух строк следует присвоить, производится путем сравнения значения переменной my integer с 10, причем если значение переменной меньше 10, присваивается первая строка, а если больше или равно 10 — вторая. Например, в том случае, если значение переменной mylnteger равняется 4, переменной resultString будет присвоена строка 'Меньие 10",
58

Глава 4

Описанный оператор вполне подходит для выполнения простых присваиваний, как в приведенном примере, однако для выполнения больших объемов кода он не приспособлен. Здесь лучше использовать оператор if.

Оператор If

Оператор if является гораздо более гибким способом принятия решений. В отличие от операторов ?:, операторы if не имеют результата (поэтому их нельзя использовать в операторах присваивания), зато появляется возможность применять их для выполнения каких-либо других операторов прн соблюдении определенного условия.

Наипростейшей формой оператора if является следующая: if (<условие>)

<код, который выполняется, ест вычисление «условия» дает результат true>/

Когда происходит вычисление <условяя> (а в результате этих вычислений должно получаться логическое значение, иначе код не пройдет компиляцию), строка кода, расположенная под оператором, будет выполнятся только в случае значения true. После того как эта строка кода будет выполнена, а также если эта строка не будет выполняться (нз-за того, что получено значение false), работа продолжится со следующей за условным оператором строки кода.

Можно задать дополнительный код, воспользовавшись оператором else в сочетании с оператором if. Этот оператор будет выполняться только в том случае, если в результате вычисления <условия> будет получено значение false:

if (<услолие>)

<код, который выполняется, если вычисление <условия> дает результат crve>{ else

<ход, который выполняется, если вычисление <усдовия> дает результат falser;

Каждый раздел кода может занимать несколько строк, для чего используются фигурные скобки:

if (<условиа>|

<код, который выполняется, если вычисление <уславия> дает результат true>; else

<код, который выполняется, если вычисление <условия> дает результат ?alse>;

^HjgjP ,

В качестве простого примера перепишем код из предыдущего раздела, в котором использовался тринарный оператор, с помощью оператора if:

string reaultString = (fflylnteger < 10) ? "Меньие 10" : 'Больше или рвино 10";

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

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

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

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

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