Условный оператор CASE

С помощью этого оператора можно выбрать вариант из любого количества вариантов. Структура этого оператора выглядит следующим образом


CASE S OF

C1:<оператор1>;

C2:<оператор2>;

Cn:<операторN>;

ELSE <оператор>

END;

В этой структуре S - выражение порядкового типа, которое вычисляется;

C1, C2,…,Cn - константы с которыми сравнивается значение выражения S;

оператор1, оператор2,…,операторN – операторы, из которых выполняется тот, с константой которого совпадает значение выражения S;

оператор – оператор, который выполняется, если значение выражения S не совпадает ни с одной из констант C1, C2,…,Cn.

Ветвь ELSE <оператор> является необязательной. Если она отсутствует, и значение выражения S не совпадает ни с одной из перечисленных констант, весь оператор рассматривается как пустой.

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

Пример.

N
Рассмотрим процесс управления движением некоторым летательным аппаратом. Для управления рассматриваются три параметра: старый и новый курс объекта, а также команды управления. Для простоты ограничимся в качестве значений курса сторонами света.

 
 


В качестве команд рассмотрим следующие значения FORWARD – вперед, RIGHT – направо, BACK – назад и LEFT – налево.

program polet;

type kurs=(N,E,S,W); {перечислимый тип курс}

com=(FORWARD, RIGHT, BACK, LEFT);

var

k1,k2:kurs;

b:com;

begin

read(b);

case b of

FORWARD: k2:=k1;

{движение прежним курсом}

RIGHT: if k1=W then k2:=N

else k2:=succ(k1);

BACK: if k1=S then k2:=N

else if k1=W then k2:=E

else k2:=succ(succ(k1));

LEFT: if k1=N then k2:=W

else k2:=pred(k1)

end

end.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: