PERFORM . . . VARYING ステートメントを使用してテーブルを初期化することができます。 この形式の PERFORM ステートメントでは、条件が満たされるまで変数が増加または減少され、テストされます。
そのあと、PERFORM ステートメントを使用して、テーブルを操作するループを制御することができます。以下のいずれかの形式を使用することができます。
PERFORM . . . WITH TEST AFTER . . . . VARYING . . . UNTIL . . . PERFORM . . . [WITH TEST BEFORE] . . . VARYING . . . UNTIL . . .
以下のコードのセクションは、テーブル全体をループ処理して無効データがないか検査する例を示しています。
PERFORM TEST AFTER VARYING WS-DATA-IX
FROM 1 BY 1 UNTIL WS-DATA-IX = 12
IF WS-DATA (WS-DATA-IX) EQUALS SPACES
SET SERIOUS-ERROR TO TRUE
DISPLAY ELEMENT-NUM-MSG5
END-IF
END-PERFORM
INSPECT . . .
上記の PERFORM ステートメントに制御が達すると、WS-DATA-IX は 1 に設定され、PERFORM ステートメントが実行されます。 その後、条件 WS-DATA-IX = 12 がテストされます。条件が真である場合には、制御が INSPECT ステートメントに渡ります。 条件が偽である場合、WS-DATA-IX が 1 だけ増やされて、 PERFORM ステートメントが実行され、条件が再度テストされます。この実行とテストのサイクルは、WS-DATA-IX が 12 になるまで継続されます。
上記のループは、項目 WS-DATA の 12 個のフィールドに関する入力検査を制御します。 アプリケーションでは空のフィールドは許可されません。ですから、コードのセクションはループし、必要に応じてエラー・メッセージを発行します。