Организация циклов. Операторы повторения

Оператор варианта CASE

 

Оператор варианта состоит из выражения и списка операторов, каждому из которых предшествует одна или более констант, называемых константами выбора, что видно из синтаксической диаграммы:

 

Общая форма записи:

 

CASE <выражение> OF

константы: оператор;

....................

константы: оператор

ELSE < оператор >

END.

Выражение, стоящее между CASE и OF, называется селектором. Константы (значения выражения), предшествующие двоеточию, называются метками случаев. Порядок работы оператора - сначала вычисляется значение селектора, затем выполняется оператор, метка которого совпадает со значением селектора. Все остальные операторы не выполняются, управление передается на следующий после END оператор. Если же в операторе есть строка ELSE, то при несовпадении значения селектора ни с одной константой выполняется оператор, следующий за ELSE.

Выражение "селектор" может относиться к любому скалярному типу, кроме REAL. Метки случаев должны принадлежать тому же типу, что и селектор. Недопустимо, чтобы одна и та же метка появлялась более одного раза в операторе CASE.

Оператор CASE особенно удобно использовать, во-первых, когда характер действий определяется значениями, которые не попадают в последовательно расположенные интервалы, во-вторых, когда нескольким дискретным значениям селектора соответствует одно и то же действие.

Пример 1. Печать названия десятичных цифр.

 

program DICITS;

var DIGIT: integer;

begin

writeln('Введите цифру');

readln(DIGIT);

case DIGIT of

0: writeln('нуль');

1: writeln('один');

..................

9: writeln('девять');

else writeln('это не цифра');

end;

end.

 

Пример 2. Печать номера квартала года.

 

program NUMKVART;

var MESIATZ: 1..12;

begin

write('Введите номер месяца года - ');

read(MESIATZ);

case MESIATZ of

1,2,3: writeln('Первый квартал');

4,5,6: writeln('Второй квартал');

7,8,9: writeln('Третий квартал');

10,11,12: writeln('Четвертый квартал');

end;

end.

 

ЗАМЕЧАНИЕ. В операторе CASE нет условий как таковых, однако проверка условий осуществляется в неявном виде.

 

 

Оператор цикла задает повторное выполнение определенных операторов. Для реализации циклов в Паскале предусмотрены три различных структурных оператора: WHILE, REPEAT, FOR. Первые два используются, если число повторений (итераций) заранее не определено, но известно условие завершения цикла. Оператор FOR применяется тогда, когда число повторений тела цикла известно.