1. DOステートメント
DOステートメントは、複数のステートメントをグループにして、反復実行のための条件を定義することができます。DOステートメントとENDステートメントはペアになる必要があり、その中にあるステートメントはDOグループを形成します。
DOステートメントには、以下の4つのタイプがあります。
-
タイプ1
-
タイプ2
-
タイプ3
-
タイプ4
タイプ1
タイプ 1は、DOグループを定義してDOグループ内のステートメントを実行します。タイプ1は、繰り返して実行することはできません。
タイプ2とタイプ3
タイプ2とタイプ3は、DOグループを定義してDOグループ内のステートメントを実行します。繰り返して実行することができます。
タイプ 2 :
タイプ3 :
specification :

| 項目 | 説明 |
|---|---|
WHILE(expression) |
DOグループが実行される前に式を計算してビット文字列に変換します。 結果のビット文字列のいずれかのビットが1であれば、そのDOグループは実行されます。すべてのビットがゼロであるか、文字列がNULLの場合、DOグループは実行されません。 specificationが複数回反復される場合は次のspecificationが実行されます。 |
UNTIL(expression) |
DOグループが実行された後に式を計算してビット文字列に変換します。 すべてのビットがゼロであるか、文字列がNULLの場合、DOグループが実行されます。いずれかのビットが1であれば、DOグループは実行されません。 specificationが複数回反復される場合は次のspecificationが実行されます。 |
reference |
DOグループを最初に実行する前に、expression1の値で初期化されます。 specificationが複数回反復される場合、各specificationのexpression1の値で初期化され、DOグループを実行します。 |
expression1 |
参照の初期値を定義します。 TO、BY、REPEATが省略された場合には、expression1の値を保持しつつ反復されます。 |
TO expression2 |
参照の終了値を定義します。参照の値がexpression1からexpression2の範囲を超える場合、そのDOグループは終了されます。 TO expression2が省略された場合には、WHILE、UNTILオプションによってDOグループが終了される必要があります。 |
BY expression |
参照の増減値を定義します。DOグループが実行された後、参照に加算される増分を示してから保存します。 TO expression2が定義されており、BY expressionが省略された場合には、デフォルト値としてBY 1が指定されます。 |
UPTHRU expression |
参照の終了値を定義します。DOグループが実行された後、参照に1を加算してから保存します。 TOオプションと異なる点は、TOオプションはDOグループを実行する前に比較しますが、UPTHRUオプションはDOグループを実行した後に比較するということです。したがって、UPTHRUオプションはDOグループを少なくとも一度以上実行します。 |
DOWNTHRU expression |
参照の終了値を定義します。DOグループが実行された後、参照に1を減算して保存します。 TOオプションと異なる点は、TOオプションはDOグループを実行する前に比較しますが、DOWNTHRUオプションはDOグループを実行した後に比較するということです。したがって、DOWNTHRUオプションはDOグループを少なくとも一度以上実行します。 |
REPEAT expression |
DOグループが実行された後、式を計算して参照に保存し、DOグループを再実行します。 WHILEまたはUNTILオプションによって終了される前まで、DOグループの実行を繰り返します。 |
タイプ4
タイプ4は、DOグループを定義してDOグループ内のステートメントを無限に繰り返します。
| 項目 | 説明 |
|---|---|
FOREVER |
LOOPの同義語です。 |
LOOP |
無限の繰り返しを定義します。 繰り返しを終了するには、GOTOまたはLEAVEステートメントを使用するか、プロシージャあるいはプログラムを終了します。 |