Оператор SWITCH
Оператор SWITCH (переключатель), вызывает передачу уп- равления к одному из нескольких операторов, в зависимости от значения выражения. Оператор имеет форму
SWITCH (выражение) оператор
В выражении проводятся обычные арифметические преобразова- ния, но результат должен иметь тип INT. Оператор обычно яв- ляется составным. Любой оператор внутри этого оператора мо- жет быть помечен одним или более вариантным префиксом CASE, имеющим форму:
CASE констанстное выражение:
где константное выражение должно иметь тип INT. Никакие две вариантные константы в одном и том же переключателе не могут иметь одинаковое значение. точное определение константного выражения приводится в п. 23. Кроме того, может присутствовать самое большее один опе- раторный префикс вида
DEFAULT:
При выполнении оператора SWITCH вычисляется входящее в него выражение и сравнивается с каждой вариантной констан- той. Если одна из вариантных констант оказывается равной значению этого выражения, то управление передается операто- ру, который следует за совпадающим вариантным префиксом. Ес- ли ни одна из вариантных констант не совпадает со значением выражения и если при этом присутствует префикс DEFAULT, то управление передается оператору, помеченному этим префиксом. если ни один из вариантов не подходит и префикс DEFAULT от- сутствует, то ни один из операторов в переключателе не вы- полняется. Сами по себе префиксы CASE и DEFAULT не изменяют поток управления, которое беспрепятсвенно проходит через такие префиксы. Для выхода из переключателя смотрите оператор BREAK, п. 17.8. Обычно оператор, который входит в переключатель, являет- ся составным. Описания могут появляться в начале этого опе- ратора, но инициализации автоматических и регистровых пере- менных будут неэффективными.