logo

Оператор варианта ‘case…of’

Сложное ветвление N-го порядка имеет один существенный недостаток: Приходится писать большое количество однотипных операторов IF-THEN-ELSE. Такую структуру может заменить компактный оператор варианта CASE-OF. Синтаксис этого оператора представлен ниже:

CASE имя_переменной OF

<Вариант1> : [Оператор_1];

………………….

<ВариантN> : [Оператор_N];

ELSE [Оператор_N+1];

END;

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

Пример:

Program ZACHET;

Uses crt;

Label metka;

Var examination:char;

Begin

metka: write(‘зачет (Y/N)?-’);

readln(examination);

Case examination of

‘Y’: write(‘зачет’);

‘N’:write(‘не зачет’);

‘I’:write(‘не явка’);

Else Goto metka;

End;

Repeat Until KeyPressed;

End.

На экране

зачет (Y/N)?-Да нужно повторить ввод, т.к. набрано на русском языке.

зачет (Y/N)?-Y

зачет

Yandex.RTB R-A-252273-3
Yandex.RTB R-A-252273-4