IF 文

IF 文により条件が評価される (「手続き部」の章の「条件式」トピックを参照)。実行時要素の後続のアクションは、評価結果が真または偽のどちらであるかによって変わる。

一般形式

IF Statement

構文規則

  1. statement-1 および statement-2 は、無条件文または条件文を表す。条件文の前に無条件文を書いてもよい。
  2. ANS85 END-IF を指定する場合、NEXT SENTENCE は指定できない。

    VSC2MF NEXT SENTECE は、END-IF とともに指定できる。

    NEXT SENTENCE 指定を実行すると、制御は END-IF の次の文ではなく、後続の最も近い終止符 (ピリオド) の後に続く文に移る。

一般規則

  1. IF 文の範囲は、以下のいずれかによって区切られる。
    1. ANS85 同じ入れ子レベルの END-IF 指定
    2. 分離符の終止符
    3. 入れ子になっている場合、上位レベルの IF 文に関連付けられた ELSE 指定
  2. IF 文を実行すると、以下のとおり制御が移る。
    1. 条件が真の場合、statement-1 が指定されていれば、その文が実行される。statement-1 に手続き分岐文または条件文が含まれている場合、その文の規則に従って明示的に制御が移る。statement-1 に手続き分岐文または条件文が含まれていない場合、ELSE は指定されていても無視され、IF 文の末尾に制御が移る。
    2. 条件が真の場合、statement-1 の代わりに NEXT SENTENCE が指定されていれば、ELSE は指定されていても無視され、次の実行可能文に制御が移る。
    3. 条件が偽の場合、statement-1 またはその代理の NEXT SENTENCE は無視され、statement-2 が指定されている場合はそれが実行される。statement-2 に手続き分岐文または条件文が含まれている場合、その文の規則に従って明示的に制御が移る。statement-2 に手続き分岐文または条件文が含まれていない場合、IF 文の末尾に制御が移る。ELSE の statement-2 が指定されていない場合、statement-1 は無視され、IF 文の末尾に制御が移る。
    4. 条件が偽の場合、ELSE NEXT SENTENCE が指定されていると、statement-1 は指定されていても無視され、次の実行可能文に制御が移る。
  3. statement-1 または statement-2 (あるいはその両方) に IF 文を含めてもよい。この場合、IF 文は入れ子構造になる。

    ANS85 IF 文内の IF 文は、IF、ELSE、および END-IF の順の組み合わせに一致するものと見なされ、左から右方向に進む。したがって、文内の ELSE は、まだ他の ELSE と組み合わされていない、または明示的にも暗示的にも終了していない、最も近くの先行する IF と組み合わされる。文内の END-IF は、明示的にも暗示的にも終了していない、最も近くの先行する IF と組み合わされる。