Язык процедур 2-REXX для OS-2


IF


Инструкция IF используется для условного выполнения инструкции или группы инструкций в зависимости от результата вычисления выражения. Результат вычисления выражения должен быть равен 0 или 1.

Инструкция, следующая за THEN, выполняется только в том случае, если результат вычисления равен 1. Если Вы указали предложение ELSE, то инструкция, следующая за ELSE, выполняется только в том случае, если результат вычисления равен 0.

Пример: if answer='ДА' then say 'Хорошо!' else say 'Почему нет?'

Не забывайте, что если предложение ELSE находится в той же строке, что и последняя часть предложения THEN, то их нужно разделить точкой с запятой.

Пример: if answer='ДА' then say 'Хорошо!'; else say 'Почему нет?'

Предложение ELSE связывается с ближайшей инструкцией соответствующего уровня. Чтобы исключить ошибки и возможную путаницу при написании вложенных конструкций IF, можно использовать инструкцию NOP, как показано в следующем примере.

Пример: If answer = 'ДА' Then If name = 'ФРЕД' Then say 'Хорошо, Фред.' Else nop Else say 'Почему нет?'

Примечания:

  1. Инструкцией может быть любой оператор присваивания, команда или ключевая инструкция, включающая любую более сложную конструкцию, такую как DO, SELECT или саму инструкцию IF. Предложение, содержащее пустую строку, не является инструкцией; поэтому указание за THEN или ELSE дополнительной точки с запятой не равнозначно выполнению фиктивной инструкции (как это принято в языке С). Для этих целей предназначена инструкция NOP.

  2. Слово THEN нельзя использовать внутри выражения (в котором оно не предназначается для начала предложения), так как ключевое слово THEN обрабатывается иначе. Если же оно используется, то это может привести к завершению выражения в предложении IF посредством символа THEN, указанного без требуемого разделителя (;). Если бы это было не так, то пользователи других компьютерных языков испытывали бы определенные затруднения.



Содержание раздела