Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Понятие о функциях printf.docx
Скачиваний:
2
Добавлен:
01.04.2025
Размер:
27 Кб
Скачать
☆

6.7. Оператор switch

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

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

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

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

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

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

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

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

ющим форму:

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

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

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

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

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

Кроме того, может присутствовать один операторный пре-

фикс вида

default:

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

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

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

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

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

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

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

default, то управление передается оператору, помеченному

этим префиксом. Если ни один из вариантов не подходит и пре-

фикс default отсутствует, то ни один из операторов в перек-

лючателе не выполняется.

Сами по себе префиксы case и default не изменяют выпол-

нения программы, программа выполняется последовательно, пока

не встретится явная передача управления. Для выхода из

переключателя имеется оператор break (п.0.8).

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

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

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

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

Пример:

switch (regim) {

case 'x': regx++;

case 'X': case 'Y': regY++; break;

case '-': regx = 0; break;

default: err("Ошибка"); goto next;

}

6.8. Оператор break

Оператор

break;

вызывает завершение выполнения наименьшего охватывающего

этот оператор оператора while, do, for или switch; управле-

ние передается оператору, следующему за завершенным операто-

ром.

6.9. Оператор continue

Оператор

continue;

приводит к передаче управления на продолжающую цикл часть

наименьшего охватывающего этот оператор оператора while, do

или for; то есть на конец цикла. Более точно, в каждом из

операторов

while(...) { | do { | for(...) {

... | ... | ...

contin: ; | contin: ; | contin: ;

} | } while(...); | }

-37-

оператор continue эквивалентен оператору goto contin. (За

contin: следует пустой оператор; см. п. 0.13.).

6.10. Оператор возврата

Возвращение из функции в вызывающую программу осуществ-

ляется с помощью оператора return, который имеет одну из

следующих форм

return;

return выражение;

В первом случае возвращаемое значение неопределено. Во вто-

ром случае в вызывающую функцию возвращается значение выра-

жения. Если требуется, выражение преобразуется к типу функ-

ции, в которой оно появляется, как в случае присваивания.

Попадание на конец функции эквивалентно возврату без возвра-

щаемого значения.

Возвращать можно значение арифметического типа, а также

структуру (но не массив).