Условный блочный оператор
Условный блочный оператор имеет следующий общий вид:
I
F
(ЛВ)
THEN
………………
………………
ELSE
……………
……………
……………
END IF
В этом операторе условие разветвления записывается в виде логического выражения (ЛВ), которое может принимать лишь два значения: .TRUE. (ИСТИНА) или .FALSE. (ЛОЖЬ) в зависимости от значений величин, входящих в логическое выражение. Т.е. правила те же, что и в условном логическом операторе. В вычислительных задачах условие чаще всего представляет сравнение числовых величин или арифметических выражений.
Блочный оператор применяется, если по алгоритму задачи требуется разделение вычислений на две ветви. Если ЛВ истинно (или как еще говорят, ЛВ выполняется), то выполняются операторы ветви 1, а операторы ветви 2 пропускаются. Если ЛВ ложно (или как еще говорят, ЛВ не выполняется), то выполняются операторы ветви 2, а операторы ветви 1 пропускаются.
В случае, когда в алгоритме программы нужно предусмотреть обход, тогда можно использовать условный блочный оператор, который содержит только одну ветвь:
IF (ЛВ) THEN
…
…………
……………
……………
END IF
Перепишем программы примеров 2 и 3 с использованием условного блочного оператора:
Пример 2.
PRINT *, “Vvedite dva chisla” ! поясняющий текст
READ *, A, B ! ввод значений переменных A и B
! начало условного блочного оператора 1 (обход)
IF (A = = B) THEN
PRINT *, “Chisla ravny: A = B !”
EXIT ! досрочное завершение программы
ENDIF ! конец условного блочного оператора 1
! начало условного блочного оператора 2 (разветвление)
IF (A > B) THEN
max=A ! операторы ветви 1
ELSE
max=B ! операторы ветви 2
ENDIF ! конец условного блочного оператора 2
PRINT *, ‘max=’, max ! вывод результата
END ! конец программы
Пример 3.
PROGRAM MINIMUM ! название программы
print *, “Vvod x1, x2, x3” ! поясняющий текст
read *, x1, x2, x3 ! ввод значений переменных
Xmin = x1
if (Xmin > x2) then ! начало 1 ветви условного блочного оператора
Xmin = x2
else ! начало 2 ветви условного блочного оператора
Xmin = x3
endif ! конец условного блочного оператора
print *, “Xmin =”, Xmin ! вывод результата
END ! конец программы
Заметим, что в приведенных примерах 2 и 3 операторы отделены друг от друга пустыми строками и строки сдвинуты по горизонтали на несколько позиций в операторах, которые расположены внутри ветвей. Это допускается и, более того, можно использовать для улучшения читаемости программы, т.е. лучше видна ее структура.
