導入
前のレッスンのPERFORMは「1回だけ呼び出す」ものでした。ここに「回数」を指定すると、同じ段落を繰り返し実行できます。最も単純な繰り返し方法です。
説明
PROCEDURE DIVISION.
PERFORM PRINT-STAR 5 TIMES.
STOP RUN.
PRINT-STAR.
DISPLAY "*".
PERFORM 段落名 N TIMES.… 段落を N回 繰り返し実行する。- この例では
PRINT-STAR段落(*を1つ表示する)が5回呼ばれるので、*が5行表示されます。
固定の回数だけでなく、変数で回数を指定することもできます。
01 WS-REPEAT-COUNT PIC 9(2) VALUE 3.
PROCEDURE DIVISION.
PERFORM PRINT-STAR WS-REPEAT-COUNT TIMES.
段落を呼び出さず、その場に処理を書いてTIMESで繰り返すこともできます(インラインPERFORM)。
PERFORM 3 TIMES
DISPLAY "Hello"
END-PERFORM.
PERFORM ... END-PERFORM… 段落名を指定せず、PERFORMとEND-PERFORMの間に直接処理を書くスタイル。ちょっとした繰り返しなら、わざわざ別の段落を作らずその場で完結できて便利です。
TIMES は「決まった回数だけ確実に繰り返したい」場面に向いています。「条件を満たす間ずっと繰り返したい」場合は、次のレッスンの PERFORM UNTIL を使います。
試すには
PERFORM ... TIMES のインライン形式を使い、1 から 5 までの数を1行ずつ表示するには、繰り返しの中でカウンタ変数を自分で ADD 1 TO していく必要があります。試しに書いてみましょう(もっと簡単な方法はレッスン28で学びます)。