Выражение_перечисления1: оператор1;
Выражение_перечисления2: оператор2;
...
[else операторN; операторN+1;]
end;
Оператор варианта приводит к выполнению оператора, которому предшествует выражение_перечисления, одному из значений которого равно значение выражения_селектора. Если такого выражения_перечисления не существует и присутствует ветвь else, то выполняется оператор, следующий за ключевым словом else. Если же ветвь else отсутствует, то никакой оператор не выполняется.
Выражение селектор должно иметь порядковый тип, и значения верхней и нижней границы этого типа должны лежать в диапазоне от -32768 до 32767. Таким образом, длинный целый тип является недопустимым типом переключателя.
Все выражения перечисления должны быть уникальными и иметь порядковый тип, совместимый с типом выражения селектора.
В качестве примера использования оператора case приведём программу, анализирующую введённый пользователем символ.
Текст программы на языке Pascal выглядит следующим образом:
program ff;
|
|
Var
ch:char;
Begin
read(ch);
Case Ch of
'A'..'Z', 'a'..'z': WriteLn('Буква');
'0'..'9': WriteLn('Цифра');
'+', '-', '*', '/': WriteLn('Знак операции');
else WriteLn('спец. символ');
end;
End.
Операторы цикла
Общим для всех операторов цикла является наличие у них тела и заголовка. Тело цикла составляют операторы, предназначенные для циклического повторения. Заголовок цикла определяет условие окончания или количество повторений операторов, составляющих тело цикла.
Оператор цикла с постусловием (repeat)
Оператор repeat позволяет организовать цикл, тело которого расположено перед заголовком.
Синтаксис оператора Repeat:
Repeat
Оператор1;оператор2;
...
операторN;
Until логическое_выражение;
Операторы, заключенные между ключевыми словами repeat и until, выполняются последовательно до тех пор, пока результат логического_выражения не примет значение Тrue.
Рисунок 4 – Блок-схема цикла с постусловием
В качестве примера использования цикла с постусловием repeat приведем программу, которая по заданному пользователем значению х выводит на экран результат вычисления формулы:
.
Цикл repeat в данном случае используется для контроля вводимого пользователем значения. Условие окончания цикла ((x>-5)and(x<>0)) составлено таким образом, что если пользователь введёт значение, равное 0 или меньшее -5, то цикл выполнится снова, и пользователь будет вынужден повторно ввести значение х.
program rpt;
Var
x,y:real;
Begin
Repeat
writex('x->');
readln(x);
until (x>-5)and(x<>0);
y:=sqrt(x+5)/x+1;
writeln('x=',x);
writeln('y=',y);
End.