このドキュメントでは、次のトピックについて説明します。
関連機能グループ:ループ実行
REPEAT ステートメントは、処理ループを開始するために使用します。
『プログラミングガイド』の「ループ処理」も参照してください。
このステートメントには、2 つの異なる構造が可能です。
論理条件の指定位置(ループの最初または最後)によって評価のタイミングが決まります。
論理条件の詳細については、「論理条件基準」(『プログラミングガイド』)を参照してください。
構文図で使用されている記号については、「構文記号」を参照してください。
REPEAT |
|||||||
| statement |
|
|
UNTIL |
|
logical-condition |
|
|
WHILE |
|||||||
END-REPEAT |
(ストラクチャードモードのみ) | ||||||
LOOP |
(レポーティングモードのみ) | ||||||
REPEAT |
|||||||
|
|
|
UNTIL |
|
logical-condition |
|
statement |
|
WHILE |
|||||||
END-REPEAT |
(ストラクチャードモードのみ) | ||||||
LOOP |
(レポーティングモードのみ) | ||||||
構文要素の説明:
| 構文要素 | 説明 |
|---|---|
UNTIL |
UNTIL オプション:
論理条件が真になるまで、処理ループは継続します。 |
WHILE |
WHILE オプション:
論理条件が真である限り、処理ループは継続します。 |
logical-condition |
論理条件:
論理条件を指定すると、その条件によりいつループ実行を終了するかが決まります。 論理条件を指定しない場合、ループ内で logical-condition の構文については、『プログラミングガイド』の「論理条件基準」を参照してください。 |
END-REPEAT |
End of REPEAT ステートメント:
ストラクチャードモードでは、 レポーティングモードでは、Natural のステートメント |
LOOP |
** 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
レポーティングモードの例については、次のプログラムを参照してください: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
レポーティングモードの例については、次のプログラムを参照してください:RPTEX2R