UNTIL 句を指定する PERFORM

UNTIL 句を指定する形式では、参照されるプロシージャーは、UNTIL 句で指定された条件が真になるまで実行されます。 その後、制御は、PERFORM ステートメントに続く次の実行可能ステートメントに渡されます。

構文図を読む構文図をスキップする
PERFORM ステートメント - 形式 3

>>-PERFORM------------------------------------------------------>

>--+-プロシージャー名-1--+-------------------------+--| 句 2 |-+--------><
   |             '-+-THROUGH-+--プロシージャー名-2-'          |   
   |               '-THRU----'                        |   
   '-| 句 2 |--命令ステートメント--END-PERFORM------------------'   

句 2

|--+----------------------------+--UNTIL--条件-1------------------|
   '-+------+--TEST--+-BEFORE-+-'                
     '-WITH-'        '-AFTER--'                  

条件-1
条件式で記述されている条件を指定できます。 PERFORM ステートメントの開始時に条件が真である場合には、指定されたプロシージャーは実行されません。

条件-1 に指定されたオペランドに関連する、添え字付け、参照修飾子、または関数は、その条件がテストされるたびに評価されます。

TEST BEFORE 句が指定または想定されると、ステートメントが実行される前に条件がテストされます (DO WHILE 句に相当します)。

TEST AFTER 句を指定した場合には、実行すべきステートメントは、 条件がテストされる前に少なくとも 1 回実行されます (DO UNTIL 句に相当します)。

どちらの場合でも、条件が真の場合には、PERFORM ステートメントの終わりに続く次の実行可能ステートメントに制御権が移動されます。 TEST BEFORE 句も TEST AFTER 句も指定しない場合には、TEST BEFORE 句が想定されます。