В большинстве задач результат зависит от выполнения некоторых условий и естественный порядок выполнения операторов нарушается. Для этого используются операторы управления – операторы безусловного и условного перехода.
Оператор безусловного перехода (БП) имеет синтаксис
GOTO n
Этот оператор реализует безусловный переход к оператору с меткой n, далее операторы выполняются в естественном порядке. Оператор, следующий за оператором GOTO должен иметь метку, иначе он никогда не будет выполняться.
Пробелы в записи оператора БП можно игнорировать.
Структурный условный оператор IF. В общем случае имеет следующий синтаксис:
IF(B) THEN
<последовательность операторов 1>
ELSE
<последовательность операторов 2>
ENDIF
Данный оператор работает следующим образом. Если логическое выражение В имеет значение .TRUE. (истина, Да), то выполняется последовательность операторов 1, если значение .FALSE. (ложь, Нет), то последовательность операторов 2.
THEN (то) и ELSE (иначе) – ключевые слова оператора IF (если) (ключевые слова используются для обозначения оператора или разделителя внутри него). Последовательности могут содержать любое количество операторов. Структурный оператор должен заканчиваться оператором ENDIF.
Последовательность операторов 1 и 2 может быть пустой, в этом случае никаких действий не выполняется.
Пример 1. Написать фрагмент программы вычисления z = max(x,y) для Fortran 90
* Вычисление z = max(x,y)
IF(X >= Y) THEN ! для других версий Fortran IF(X .GE.Y) THEN
Z = X
ELSE
Z = Y
ENDIF
WRITE(*,*)’ Z=’,Z
Символ “!” означает, что все знаки, расположенные после него до конца строки, рассматриваются как комментарии, а не как часть оператора.
Пример 2. Написать фрагмент программы вычисления z = min(x,y) для Fortran 90
* Вычисление z = min(x,y)
IF( X< Y) THEN ! для других версий Fortran IF(X .LT.Y) THEN
Z = X
ELSE
Z = Y
ENDIF
WRITE(*,*) Z
В частном случае оператор IF может иметь конструкцию
IF(B) THEN
<последовательность операторов>
ENDIF
Последовательность операторов может содержать другие структурные условные операторы. В этом случае каждый структурный оператор должен иметь свой оператор ENDIF.