VARYING 句は、1 つまたは複数の ID または指標名の値を所定の規則に従って増大または減少させます。 (Varying 句の規則を参照。)
VARYING 句を指定した PERFORM ステートメント (形式 4) では、7 次元テーブル全体を逐次検索できます。
PERFORM ステートメント - 形式 4 >>-PERFORM------------------------------------------------------> >--+-プロシージャー名-1--+-------------------------+--| 句 3 |-+-------->< | '-+-THROUGH-+--プロシージャー名-2-' | | '-THRU----' | '-| 句 3 |--命令ステートメント-1--END-PERFORM----------------' 句 3 |--+----------------------------+--VARYING--+-ID-2--+--FROM-----> '-+------+--TEST--+-BEFORE-+-' '-指標名-1-' '-WITH-' '-AFTER--' >--+-ID-3---+--BY--+-ID-4---+--UNTIL--条件-1--+-------------+-----| +-指標名-2--+ '-リテラル-2-' | .---------. | '-リテラル-1-' | V | | '---| 句 4 |-+-' 句 4 |--AFTER--+-ID-5--+--FROM--+-ID-6---+--BY--+-ID-7---+-----------> '-指標名-3-' +-指標名-4--+ '-リテラル-4-' '-リテラル-3-' >--UNTIL--条件-2--------------------------------------------------|
UNTIL 句内に指定された条件が満たされると、PERFORM ステートメントに続く次の実行可能ステートメントに制御権が渡されます。
条件-1 または条件-2 に指定されている任意のオペランドが、添え字付きであるか、参照変更されているか、または関数 ID である場合、 その添え字、参照修飾子、または関数は、条件がテストされるたびに評価されます。
浮動小数点データ項目および浮動小数点リテラルは、数字データ項目または数字リテラルが指定できるところではどこでも使用できます。
TEST BEFORE が指定されると、指定されたすべての条件が最初の実行前にテストされます。 実行すべきステートメントは、指定されたすべてのテストが失敗した場合にだけ実行されます。 TEST AFTER が指定されると、実行すべきステートメントは、条件がテストされる前に少なくとも 1 回実行されます。 条件-1 に指定されたオペランドに関連する添え字付けは、条件がテストされるたびに評価されます。
TEST BEFORE 句も TEST AFTER 句も指定しない場合には、TEST BEFORE 句が想定されます。