Наш спонсор. Рекомендуем посетить.

Партнерская программа для русскоязычных сайтов

3.5 Оператор перехода switch.

Есть ещё один оператор перехода, оператор switch (переключать), который позволяет выбрать одну из нескольких альтернатив (смотри рисунок).

Аналогичный оператор выбора присутствует и в Паскале. Это оператор case-of. В формальном виде он выглядит так:

case (выражение) of

константа1: вариант1;

. . .

константаN: вариантN;

else вариант N+1;

end;

В Си, оператор switch, записывается в следующем формальном виде:

switch (выражение)

{case константа1: вариант1; break;

. . .

case константаN: вариантN; break;

default: вариантN+1; break;}

В операторе switch вычисляется целое выражение в скобках (селектор), и его значение сравнивается со всеми константами (константными выражениями). При совпадении выполняется соответствующий вариант (одна или несколько инструкций). Все константы в записи оператора должны быть различными. Вариант с ключевым словом default (которое может и отсутствовать) реализуется, если ни один из предложенных не подошёл. Если отсутствует default, а все результаты сравнения отрицательны, то ни один вариант не выполняется. Для прекращения следующих проверок, после успешного выбора варианта, используется оператор break, обеспечивающий немедленный выход из переключателя switch. Кстати сказать, оператор break, такую же роль выполняет в случае немедленного прекращения оператора (например цикла) и в Паскале. Рассмотрим пример программы с переключателем switch.

Не имеет смысла приводить пример этой задачи на Паскале. Отметим, только, что ввод данных одной командой readln(a,znak,b); не воспринялся бы компилятором из-за несовместимости форматов ввода данных. Пришлось бы разложить на три оператора. Кроме того, в последнем операторе выбора if-else, возникла бы необходимость дополнительного условия для вывода, т.к. ввод деления нацело осуществлялся бы одним символом, хотя вся процедуры записывается: a div b.

Google
Rambler's Top100 Яндекс цитирования PageRank

Регистрация доменов .RU по минимальной ценеРегистрация в системе обмена ссылками