Шаг 21.
Оператор варианта


    Этот шаг посвящен оператору Case.

    При решении задач часто приходится рассматривать не два, а большее количество вариантов. Это можно реализовать, используя несколько условных операторов. В результате такие программы принимают объемный, сильно разветвленный вид. Для упрощения таких ситуаций в языке программирования Pascal используется оператор варианта (выбора), который является расширением условной конструкции. Его общий вид следующий:


Рис.1. Общий вид оператора Case



    На месте переменной-признака может располагаться выражение. В этом случае выполнение оператора выбора начинается с вычисления значения этого выражения. В случае, если значение этого выражения (или значение переменной, если здесь расположена переменная) равен одному из перечисленных значений, то выполняется соответствующий оператор. Затем управление передается за пределы оператора выбора. Если значение выражения не совпадет ни с одним из указанных значений, то выполняется оператор, стоящий после служебного слова Else. В операторе варианта, также как и в условной конструкции, ветвь Else может отсутствовать. В этом случае, опять же, если значение выражения не совпадет ни с одним из указанных значений, то управление передается на оператор, следующий за End.

   


Замечания.
    1. В операторе варианта тип значений должен совпадать с типом переменной-признака.
    2. В конструкции выбора, в отличие от условного оператора, перед Else ставится символ ";" (точка с запятой).
    3. После двоеточия в операторе варианта могут выполняться несколько операторов. В этом случае их заключают в операторные скобки Begin и End.
    4. В операторе выбора можно задавать не только одно значение, но и список, и диапазон значений.


    Приведем пример программы, иллюстрирующей работу конструкции выбора. Пусть по заданному месяцу требуется определить, к какому кварталу он относится (рис.2):


Рис.2. Текст программы

Текст этой программы можно взять здесь.

    Здесь проиллюстрировано использование как набора, так и диапазона значений. Прокомментируем эту программу. После того, как пользователь задал значение переменной (пусть, например, a=4) выполняется оператор варианта. Здесь в качестве переменной-признака выступает переменная a. Сначала компьютер последовательно сравнивает значение этой переменной со значениями 1, 2 и 3. Не получив положительного результата, компьютер переходит к следующей группе значений, где обнаруживает совпадение. После этого он выводит на экран сообщение: Второй квартал и выходит из оператора варианта.

    Допустим, пользователь задал a=13. В этом случае ни одна проверка не даст положительного результата. Поэтому будет осуществлен переход на конструкцию Else, выполнение которой приведет к выводу на экран сообщения: Такого месяца нет и завершению выполнения оператора варианта.


1. Как изменится работа программы, если в операторе варианта убрать служебное слово Else?
2. Составьте новую программу, являющуюся решением данной задачи, используя условный оператор. Сравните эти программы. Сделайте вывод.
Ответ вы можете посмотреть здесь.



    На следующем шаге мы приведем несколько задач на использование условных конструкций.


Предыдущий шаг Содержание Следующий шаг