このドキュメントでは、次のトピックについて説明します。
関連機能グループ:「ループ実行」
REPEAT
ステートメントは、処理ループを開始するために使用します。
このステートメントには、2 つの異なる構造が可能です。
論理条件の指定位置(ループの最初または最後)によって評価のタイミングが決まります。
論理条件の詳細については、「論理条件基準」(『プログラミングガイド』)を参照してください。
構文図で使用されている記号については、「構文記号」を参照してください。
REPEAT
|
|||||||
statement | UNTIL
|
logical-condition | |||||
WHILE
|
|||||||
END-REPEAT
|
(ストラクチャードモードのみ) | ||||||
LOOP
|
(レポーティングモードのみ) |
REPEAT
|
|||||||
UNTIL
|
logical-condition | statement | |||||
WHILE
|
|||||||
END-REPEAT
|
(ストラクチャードモードのみ) | ||||||
LOOP
|
(レポーティングモードのみ) |
構文要素の説明:
UNTIL | 論理条件が真になるまで、処理ループは継続します。 |
---|---|
WHILE | 論理条件が真である限り、処理ループは継続します。 |
logical-condition |
論理条件を指定すると、その条件によりいつループ実行を終了するかが決まります。 論理条件を指定しない場合、ループ内で |
END-REPEAT | REPEAT ステートメントを終了するには、Natural 予約語 END-REPEAT を使用する必要があります。
|
** Example 'RPTEX1S': REPEAT (structured mode) ************************************************************************ DEFINE DATA LOCAL 1 EMPLOY-VIEW VIEW OF EMPLOYEES 2 PERSONNEL-ID 2 NAME * 1 #PERS-NR (A8) END-DEFINE * REPEAT INPUT 'ENTER A PERSONNEL NUMBER:' #PERS-NR IF #PERS-NR = ' ' ESCAPE BOTTOM END-IF /* FIND EMPLOY-VIEW WITH PERSONNEL-ID = #PERS-NR IF NO RECORD FOUND REINPUT 'NO RECORD FOUND' END-NOREC DISPLAY NOTITLE NAME END-FIND END-REPEAT * END
ENTER A PERSONNEL NUMBER: 11500304
NAME -------------------- KLUGE
レポーティングモードの例はライブラリ SYSEXRM のプログラム RPTEX1R を参照してください。
** Example 'RPTEX2S': REPEAT (with WHILE and UNTIL option) ************************************************************************ DEFINE DATA LOCAL 1 #X (I1) INIT <0> 1 #Y (I1) INIT <0> END-DEFINE * REPEAT WHILE #X <= 5 ADD 1 TO #X WRITE NOTITLE '=' #X END-REPEAT * SKIP 3 REPEAT ADD 1 TO #Y WRITE '=' #Y UNTIL #Y = 6 END-REPEAT * END
#X: 1 #X: 2 #X: 3 #X: 4 #X: 5 #X: 6 #Y: 1 #Y: 2 #Y: 3 #Y: 4 #Y: 5 #Y: 6
レポーティングモードの例はライブラリ SYSEXRM のプログラム RPTEX2R を参照してください。