IF(判断)文

IF文は、評価すべき条件を提示する(手続き部の章の条件式節を参照)。 その結果が「真」であったか「偽」であったかによって、ランタイム要素の以降の制御の流れが変わってくる。

一般形式

構文規則

  1. 文-1と文-2は、無条件文または条件文を表わす。条件文の前に無条件文を書いてもよい。

  2. END-IF指定を書く場合、NEXT SENTENCE指定を書いてはならない。

    END-IF指定と共に、NEXT SENTECE指定を書いてもよい。

    NEXT SENTENCE指定が実行されると、制御はEND-IFの次の文ではなく、後続の最も近い終止符(.)の後ろに続く文に移される。

一般規則

  1. IF文の範囲は、下記のどれかによって区切られる。

    1. 同じ入れ子レベルのEND-IF指定

    2. 分離符の終止符

    3. 入れ子になっている場合、上位レベルのIF文に対応するELSE指定

  2. IF文が実行されると、下記の制御の移転が発生する。

    1. 条件が真のとき、文-1を指定してある場合は、その文が実行される。文-1に手続き分岐文または条件文が含まれると、その文の規則に従って明示的に制御が移転される。文-1に手続き分岐文または条件文が含まれないと、ELSE指定は指定してあっても無視されて、IF文の末尾に制御が移される。

    2. 条件が真のとき、文-1の代わりにNEXT SENTENCE指定を指定してある場合は、ELSE指定は指定してあっても無視されて、次の実行可能文に制御が移される。

    3. 条件が偽のとき、文-1またはその代わりのNEXT SENTENCE指定は無視され、文-2が指定してあればそれが実行される。文-2に手続き分岐文または条件文が含まれると、その文の規則に従って明示的に制御が移転される。文-2に手続き分岐文または条件文が含まれないと、IF文の末尾に制御が移される。ELSE文-2指定を指定してないと、文-1は無視されて、IF文の末尾に制御が移される。

    4. 条件が偽のとき、ELSE NEXT SENTENCE指定を指定してある場合は、文-1は指定してあっても無視されて、次の実行可能文に制御が移される。

  3. 文-1または文-2のどちらか一方または両方に、IF文を含めてもよい。この場合、IF文は入れ子になっている、という。

    IF文の中に含まれるIF文は、左から右方向に、IFとELSEとEND-IFの順に組になったものとみなされる。したがって、文中に出てくるELSEは、まだ他のELSEと組み合わされていないか、または明示的にも暗示的にも終了していない、最も近い先行するIFと組み合わされる。文中に出てくるEND-IFは、明示的にも暗示的にも終了していない、最も先行するIFと組み合わされる。