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

В Pascal есть два способа принятия решения: условный оператор if и оператор выбора case.

Оператор if

Условный оператор if (если) очень похож на сослагательное наклонение в естественном языке. Рассмотрим следующее предложение с ключевым словом "если":

В Pascal, как и в большинстве других языков высокого уровня, оператор if составляет основу структур принятия решений. Синтаксис простой формы оператора if, называемой if-then, имеет вид

if выражение then операторы;

Все оператор после слова then выполняется, только если значение выражения равно True. Выражение -условие должно иметь булев тип. На рис. 1 показана блок-схема оператора if-then.

Рисунок 1 - Блок-схема оператора if-then

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

Если оператор if-then содержит более одного выполняемого оператора, то необходимо заключить его в блок с помощью ключевых слов begin и end.

В некоторых случаях необходима более сложная структура принятия решения if-then-else, синтаксис которого имеет вид.

if выражение then begin

[ операторы 1;]

end

else begin

[ операторы 2;]

end;

На рис. 2 показана блок-схема простой формы оператора if-then-else. Группа операторов операторы 1 выполняется, только когда выражение условие имеет значение True. Операторы операторы 2 выполняются, только если выражение условие имеет значение False.

Рисунок 2 - Блок-схема простой формы оператора if-then-else

Перед ключевым словом else точка с запятой (;) не ставится. В операторе if между предложением then и ключевым словом if точки с запятой не должно быть никогда. Точка с запятой ставится после всего оператора if, чтобы отделить его от следующего оператора, а между предложениями then и else ставятся только пробелы или символ перехода на следующую строку. Внутри составного оператора, ограниченного ключевыми словами begin и end и входящего в состав оператора if, точки с запятой ставятся, естественно, после каждого оператора.

Операторы if, содержащие предложения else-if, могут быть записаны как последовательные операторы вида if-then. В этом случае последовательность условий не менее важна и тоже должна быть записана логически правильно. Применение конструкций проиллюстрировано следующими примерами. Программа, которая по введенному значению аргумента вычисляет значение функции, заданной в виде:

.

Конструкция else-if:

program calc_function_1;

var х, у: real;

Begin

writeln(' Введите значение аргумента'); readln(x);

if x < -2 then у:= 0 else

if x < -1 then у:= -x - 2 else

if x < 1 then у:= x else

if x < 2 then у:= -x + 2 else

у:= 0;

writeln(' Для х= ', x:6:2, ' значение функции у = ', y:6:2);

end.

Конструкция if-then:

program calc_function_2;

var х, y: real;

Begin

writeln(' Введите значение аргумента'); readln(x);

if x < -2 then у:= 0;

if (x >= -2) and (x < -1) then у:= -x - 2;

if (x >= -1) and (x < 1) then у:= x;

if (x >= 1) and (x < 2) then у:= -x + 2;

if x >= 2 then у:= 0;

writeln(' Для х= ', x:6:2, ' значение функции у = ', y:6:2);

end.

В программировании часто используются вложенные операторы if, т.е. расположенные внутри других операторов if, например:

if выражение 1 then begin

if выражение 2 then begin

[ операторы 1;]

end

else begin

[ операторы 2;]

end;

end;

При этом else ассоциируется с ближайшим доступным ключевым словом if. Для того чтобы заставить компилятор прочитать наш пример другим способом, нужно "закрыть" для предложения else второй оператор if:

if выражение 1 then begin

if выражение 2 then begin

[ операторы 1;]

end;

end

else begin

[ операторы 2;]

end;

Использование вложенных операторов if определяется главным образом стилем программирования. Используйте метод, который кажется вам более простым и удобным.


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



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