Оператор выбора в Паскаль
Для многих алгоритмов вычислительный процесс может разветвляться более чем по двум направлениям. Конструкции вложенного условного оператора в таких программах могут оказаться весьма громоздкими и трудно читаемыми.
Проблема широкой разветвляемости алгоритмов в определенных случаях может быть решена путем использования оператора выбора case, который позволяет выбирать из произвольного числа возможных вариантов.
Оператор выбора имеет следующий формат:
- case выражение - переключатель of
- список выбора 1: оператор1;
- ...
- список выбора N: операторN;
- else оператор0
- end;
Выражение – переключатель может быть только строкового или простого типа (за исключением вещественного). Перед каждой ветвью оператора записывается список выбора, который в языке Паскаль может содержать одну или несколько констант через запятую, или диапазон значений вида а..b (причем a < b). Константы должны иметь тип, совместимый с типом переключателем.
{Фрагмент кода программы}
- case DayOfWeek of
- 1..5: writeln('Будний день');
- 6,7: writeln('Выходной день');
- else writeln('Ошибка ввода');
- end;
Работа оператора case происходит следующим образом:
- Вычисляется значение выражения-переключателя.
- Передается управление в ветвь того оператора, значение константы выбора которого оказывается равно текущему значению переключателя.
- Если ни одна из констант в списках выбора не равна значению переключателя, то выполняется оператор, идущий за необязательным словом else.
- Если слово else отсутствует, то происходит переход на первый оператор за границей case (т. е. оператор, идущий за словом end).
Внимание: в списках выбора не допускается пересечений, так, следующий код вызывает ошибку компиляции:
{Фрагмент кода программы}
- case N of
- 9,12: writeln(1);
- 1.10: writeln(2);
- end;
Внимание: если в какой-либо ветви необходимо записать несколько операторов, то для этого в языке программирования Паскаль используется составной оператор.