Статья: Условный оператор. Блок. Оператор выбора

Оператор выбора выполняется следующим образом: вычисляется выражение, стоящее после CASE, затем просматриваются все списки значений, и если значение выражения попало в список значений, выполняется соответствующий оператор или блок, и выполнение оператора CASE заканчивается; если значение выражения не содержится ни в одном из списков, то выполняется оператор или блок, стоящий после ELSE. Конструкция ELSE может отсутствовать, в этом случае оператор CASE может не выполнить никаких действий. В качестве примера использования оператора выбора решим предыдущую задачу о правильной дате.

VAR d,m : Byte; y : Word; Valid : Boolean;

BEGIN WRITE('Введите дату '); READ(d,m,y);

CASE m OF

1,3,5,7,8,10,12 :

CASE d OF 1..31 : Valid:=TRUE

ELSE Valid:=FALSE

END;

4,6,9,11 :

CASE d OF 1..30 : Valid:=TRUE

ELSE Valid:=FALSE

END;

2 : CASE d OF 1..28 : Valid:=TRUE;

29 : Valid:=(y MOD 4=0)AND(y MOD 100>0);

ELSE Valid:=FALSE

END;

ELSE Valid:=FALSE;

END;

IF Valid THEN WRITELN('Дата верна')

ELSE WRITELN('Дата не верна');

END.

Вы можете видеть, что задачи такого типа решаются оператором CASE гораздо проще, чем оператором IF. Решим еще одну задачу: определить, какого рода символ введен - цифра, латинская буква, русская буква или ни то, ни другое и ни третье.

VAR c : Char;

BEGIN WRITE('Введите символ '); READ(c);

CASE c OF

'0'..'9' : WRITELN('Вы ввели цифру');

' a'..'z','A'..'Z' : WRITELN('Вы ввели латинскую букву');

'а'..'п','р'..'я','А'..'Я' : WRITELN('Вы ввели русскую букву');

ELSE WRITELN('Вы ввели неизвестно что !');

К-во Просмотров: 199
Бесплатно скачать Статья: Условный оператор. Блок. Оператор выбора