UNTIL 句を指定する形式では、参照されるプロシージャーは、UNTIL 句で指定された条件が真になるまで実行されます。 その後、制御は、PERFORM ステートメントに続く次の実行可能ステートメントに渡されます。
PERFORM ステートメント - 形式 3 >>-PERFORM------------------------------------------------------> >--+-プロシージャー名-1--+---------------------------------+--| 句 2 |-+->< | '-+-THROUGH-+--プロシージャー名-2-' | | '-THRU----' | '-| 句 2 |--命令ステートメント--END-PERFORM-------------------------' 句 2: |--+----------------------------+--UNTIL--条件-1----------------| '-+------+--TEST--+-BEFORE-+-' '-WITH-' '-AFTER--'
条件-1 に指定されたオペランドに関連する、添え字付け、参照修飾子、または関数は、その条件がテストされるたびに評価されます。
TEST BEFORE 句が指定または想定されると、ステートメントが実行される前に条件がテストされます (DO WHILE 句に相当します)。
TEST AFTER 句を指定した場合には、実行すべきステートメントは、 条件がテストされる前に少なくとも 1 回実行されます (DO UNTIL 句に相当します)。
どちらの場合でも、条件が真の場合には、PERFORM ステートメントの終わりに続く次の実行可能ステートメントに制御権が移動されます。 TEST BEFORE 句も TEST AFTER 句も指定しない場合には、TEST BEFORE 句が想定されます。