Условный оператор IF реализует разветвляющийся алгоритм, т.е. предполагает выполнение вычислений по одному из возможных направлений в зависимости от исходных данных или промежуточных результатов. Ветвление в таких алгоритмах производится при проверке некоторых условий.
Формат записи оператора IF следующее:
IF условие THEN оператор_1
ELSE оператор_2;
Условие – значение типа BOOLEAN или логическая операция. Если условие верно, выполняется оператор, или блок операторов, следующий за THEN, в противном случае выполняется блок операторов после ELSE, если он есть.
Оператор IF – это один оператор, поэтому ";" после оператора_1, т.е. перед ELSE, не ставится.
Часть со служебным словом ELSE может отсутствовать. В этом случае выполняется или не выполняется только оператор_1.
IF условие THEN оператор_1;
Если с помощью оператора IF необходимо управлять группой операторов, то эта группа заключается в операторные скобки begin end;.
Схема алгоритма работы условного оператора приведена на рисунке 6.1.
Допустима вложенность операторов IF друг в друга на любую глубину. При этом важно не запутаться, какой ELSE к какому IF относится. В общем случае служебное слово ELSE связывается с ближайшим словом IF, которое еще не связано со служебным словом ELSE. Для удобства чтения и понимания логики программы записывайте ELSE под соответствующим ему IF.
Оператор выбора CASE (вариант из)
Оператор If позволяет выбрать один из двух возможных путей решения. В ряде случаев таких путей бывает гораздо больше.
Для выбора одного из нескольких путей решения используется оператор Case (вариант из) – обобщение условного оператора. В общем случае формат записи оператора следующий:
CASE выражение OF
значения_1 : оператор_1;
значения_2 : оператор_2;
. . . . . . . . . .
значения_N : оператор_N;
ELSE оператор_M;
END;
Выражение записывается относительно специальной переменной выбора (селектора), которая может быть любого перечисляемого типа (как правило, Integer или Char).
Значения_1, . . . , значения_N – значения выражения, при которых выполняются оператор_1, ... , оператор_N соответственно.
Значения состоят из одной или большего количества констант или диапазонов, разделенных запятыми, которые должны принадлежать к тому же типу, что и выражение (селектор).
После Else-части приводится оператор, который выполниться, если селектор принял значение, не принадлежащее ни одному из перечисленных значений.
Если Else-часть отсутствует, то оператор Case пропускается и выполняется следующий за ним оператор.
Если после Значений необходимо выполнять несколько операторов, они заключаются в операторные скобки.
Схема алгоритма работы оператора выбора показана на рисунке 6.2.