IF (структура условного выполнения)
IF логическое выражение
[THEN]
satements
[ELSIF логическое выражение]
[THEN]
satements
[ELSE]
satements
.
логическое выражение | Числовая или строковая переменная, выражение или функция. ЛОГИЧЕСКОЕ ВЫРАЖЕНИЕ вычисляет условие. Передача управления определяется результатом (true или false) выражения. Нулевое (или пустое) значение считается ЛОЖЬЮ, любое другое значение - ИСТИНА. |
THEN | Операторы после THEN выполняются, если предыдущее ЛОГИЧЕСКОЕ ВЫРАЖЕНИЕ вычислено как ИСТИНА. THEN НАДО пропускать, если подлежащие выполнению операторы находятся на отдельной строке, а не той же, где и ЛОГИЧЕСКОЕ ВЫРАЖЕНИЕ. |
statements | Выполняемый оператор или последовательность выполняемых операторов. |
ELSIF | ЛОГИЧЕСКОЕ ВЫРАЖЕНИЕ, стоящее за ELSIF вычисляется только если все предыдущие IF и ELSIF были ЛОЖЬю. |
ELSE | Операторы, стоящие за ELSE выполняются, если все предыдущие IF и ELSIF дают ЛОЖЬ. ELSE НЕ требуется, но если используется, то должно быть последней опцией в операторе IF. |
Структура IF управляет выполнением программы на основании выводов из одного или более ЛОГИЧЕСКИХ ВЫРАЖЕНИЙ. Структуры IF могут иметь любое количество групп операторов ELSIF-THEN. Структуры IF могут быть "вложены" в другие управляющие структуры, и другие управляющие структуры могут быть вложены в IF-структуры.
Пример:
IF Cus:TransCount !If new customer
AcctSetup ! call account setup procedure
ELSIF Cus:TransCount > 10 AND Cus:TransCount <100
!If regular customer
DO RegularAcct ! process the account
ELSIF Cus:TransCount>100 !If special customer
DO SpecialAcct ! process the account
ELSE !Otherwise
DO NewAcct ! process the account
IF Cus:Credit THEN CheckCredit ELSE CLEAR(Cus:CreditStat).
! verify credit status
. !End if
IF ERRORCODEO THEN ErrHandler(Cus:AcctNumber,Trn:InvoiceNbr).
!Handle errors