PERFORM
ループ処理を行うためのもの
PERFORM VARYINGとは
特定の変数を指定した範囲内で変化させながら繰り返し処理を行う
PERFORM VARYINGステートメントの構文
PERFORM VARYING variable-name FROM start-value BY increment-value UNTIL condition
...
END-PERFORM
各要素の意味
variable-name
ループ処理中に変化させる変数の名前
start-value
variable-nameの初期値
increment-value
variable-nameの増分を指定
increment-valueについて
increment-value
ループ処理中に変化させる変数の増分を指定する
ループが一回繰り返されるごとに、指定した変数がこの増分だけ増加 / 減少する
例
PERFORM VARYING Counter FROM 1 BY 2 UNTIL Counter > 10
...
END-PERFORM.
increment-valueはBY 2が該当する
Counter変数は1からスタートして、1回のループごとに2ずつ増加していく
→1,3,5,7,9,となる
condition
ループを続けるかどうかを判定する条件式
この条件が false になるまでループが続く
PERFORM VARYINGステートメントの使用例
IDENTIFICATION DIVISION.
PROGRAM-ID. LoopExample.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 Counter PIC 9(3) VALUE 1.
PROCEDURE DIVISION.
PERFORM VARYING Counter FROM 1 BY 1 UNTIL Counter > 10
DISPLAY "Counter: " Counter
END-PERFORM.
STOP RUN.
Counter変数の値を1から10まで変化させながら、その値を表示している
PERFORM VARYINGステートメントによって、ループが10回繰り返される
PERFORM UNTILとは
指定した条件が満たされるまで、特定の処理を繰り返し行う
PERFORM UNTILステートメントの構文
PERFORM UNTIL condition
statements
END-PERFORM.
各要素の意味
condition
ループの終了条件を示す条件式
TRUEになったらループは終了する
statements
実際に実行される処理
PERFORM UNTILステートメントの使用例
PERFORM UNTIL COUNTER >= 5
DISPLAY "Counter value: " COUNTER
ADD 1 TO COUNTER
END-PERFORM.
COUNTER の値が5未満である限り、DISPLAY ステートメントが実行される
COUNTER の値は1ずつ増加
COUNTER の値が5以上になると、PERFORM UNTIL ループは終了する