Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Керниган, Ричи. Язык C.docx
Скачиваний:
5
Добавлен:
05.05.2019
Размер:
377.71 Кб
Скачать

17.3. Условные операторы

Имеются две формы условных операторов:

IF (выражение) оператор

IF (выражение) оператор ELSE оператор

В обоих случаях вычасляется выражение и, если оно отлично от

нуля, то выполняется первый подоператор. Во втором случае,

если выражение равно нулю, выпалняется второй подоператор.

Как обычно, двусмысленность "ELSE" разрешается связываением

ELSE с последним встречающимся IF, у которого нет ELSE.

17.4. Оператор while

Оператор WHILE имеет форму

WHILE (выражение) оператор

Подоператор выполняется повторно до тех пор, пока значение

выражения остается отличным от нуля. проверка производится

перед каждым выполнением оператора.

17.5. Оператор do

Оператор DO имеет форму

DO оператор WHILE (выражения)

Оператор выполняется повторно до тех пор, пока значение

выражения не станет равным нулю. Проверка производится после

каждого выполнения оператора.

17.6. Оператор for

Оператор FOR имеет форму

(выражение-1 ; выражение-2 ; выражение-3 )оператор

необ необ необ

Оператор FOR эквивалентен следующему

выражение-1;

WHILE (выражение-2) \(

оператор

выражение-3

\)

Таким образом, первое выражение определяет инициализацию

цикла; второе специфиуирует проверку, выполняемую перед каж-

дой итерацией, так что выход из цикла происходит тогда, ког-

да значение выражения становится нулем; третье выражение

часто задает приращение параметра, которое проводится после

каждой итерации.

Любое выражение или даже все они могут быть опущены. Ес-

ли отсутствует второе выражение, то предложение с WHILE счи-

тается эквивалентным WHILE(1); другие отсутствующие выраже-

ния просто опускаются из приведенного выше расширения.

17.7. Оператор switch

Оператор SWITCH (переключатель), вызывает передачу уп-

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

значения выражения. Оператор имеет форму

SWITCH (выражение) оператор

В выражении проводятся обычные арифметические преобразова-

ния, но результат должен иметь тип INT. Оператор обычно яв-

ляется составным. Любой оператор внутри этого оператора мо-

жет быть помечен одним или более вариантным префиксом CASE,

имеющим форму:

CASE констанстное выражение:

где константное выражение должно иметь тип INT. Никакие две

вариантные константы в одном и том же переключателе не могут

иметь одинаковое значение. точное определение константного

выражения приводится в п. 23.

Кроме того, может присутствовать самое большее один опе-

раторный префикс вида

DEFAULT:

При выполнении оператора SWITCH вычисляется входящее в

него выражение и сравнивается с каждой вариантной констан-

той. Если одна из вариантных констант оказывается равной

значению этого выражения, то управление передается операто-

ру, который следует за совпадающим вариантным префиксом. Ес-

ли ни одна из вариантных констант не совпадает со значением

выражения и если при этом присутствует префикс DEFAULT, то

управление передается оператору, помеченному этим префиксом.

если ни один из вариантов не подходит и префикс DEFAULT от-

сутствует, то ни один из операторов в переключателе не вы-

полняется.

Сами по себе префиксы CASE и DEFAULT не изменяют поток

управления, которое беспрепятсвенно проходит через такие

префиксы. Для выхода из переключателя смотрите оператор

BREAK, п. 17.8.

Обычно оператор, который входит в переключатель, являет-

ся составным. Описания могут появляться в начале этого опе-

ратора, но инициализации автоматических и регистровых пере-

менных будут неэффективными.