Здесь IF (ecлu), THEN (то, тогда), ELSE (иначе) —ключевые слова языка; <условие> — логическое выражение; <оператор1 и оператор2> — один исполняемый оператор.
Смысл условного оператора: если условие при текущих значениях входящих в него переменных истинно, то выполняется <оператор1> (<оператор2> не выполняется), если же условие ложно, то выполняется <оператор2> (<оператор1> не выполняется). После выполнения <оператора1> или <оператора2> управление передается очередной строке программы, если в <операторах1 и 2> не предусмотрено программное изменение последовательности выполнения строк.
Примеры записи условного оператора:
- для нахождения большего из двух значений:
IF A > В THEN X:=A ELSE Х:=В;
- для нахождения большегоиз двух значений с фиксацией его имени:
IF A > В THEN
BEGIN
X:=A;
F:=’A’
END
ELSE
BEGIN
X:=B;
F:=’B’
END;
Здесь F переменная символьного типа.
В конструкции условного оператора ветвь «иначе» не обязательна, она может отсутствовать. В этом случае имеет место сокращенная форма условного оператора:
IF <условие> THEN <оператор>;
Смысл оператора: если <условие> истинно, то выполняется указанный оператор. Если условие ложно, то оператор не выполняется, управление просто переходит к очередной строке программы.
Очевидно, что один условный оператор в полной форме можно заменить двумя в сокращенной форме; например для нахождения большего из двух значений с фиксацией его имени
IF A > В THEN
BEGIN
X:=A;
F:=’A’
END;
IF A <=В THEN
BEGIN
X:=B;
F:=’B’
END;
В условном операторе после ключевых слов THEN и ELSE можно использовать другой условный оператор. Получающиеся конструкции называются вложенными условными операторами.
Примеры вложенных условных операторов:
IF Х > 0 THEN
IF Х<=1 THEN Y:=1 +X
ELSE Y:=X*X;
Здесь возможна неоднозначность исполнения программы с ветвью, следующейза ELSE. Чтобы ее исключить принимается, что ELSE «закрывает» последний «незакрытый» THEN.
№ п/п
Название команды
Представление
Графическое
Delphi
Серии S1,…,SN состоят из одной команды
Серии S1,…,SN содержат более одной команды
Команды ветвления
Команда ветвления в полной форме
If P then
S1
else
S2;
If P then
begin
S1
end
else
begin
S2
end;
Команда ветвления в сокращенной (неполной) форме
If P then
S1;
If P then
begin
S1
end;
Примеры
Задача 16.Большее из двух чисел. Составьте блок-схему алгоритма нахождения большего из двух чисел a и b; переменой x присвойте значение max(a,b).Блок-схема алгоритма (задача 16):
Решение. Смотри блок-схему алгоритма (задача 16).
В зависимости от знака R, т.е. от истинности логического выражения R<0, решение может идти по одному из двух возможных направлений (разветвляться). Если R<0 – ложь, то после оператора 3 выполняется оператор 6, к которому направлена стрелка с надписью «нет», в этом случае при решении задачи будут выполнены операторы 1, 2, 3, 6, 5, 7. Если R<0 – истина, то после оператора 3 будет выполнен оператор 4, к которому направлена стрелка с надписью «да», а затем операторы 5 и 7.