1. DOステートメント

DOステートメントは、複数のステートメントをグループにして、反復実行のための条件を定義することができます。DOステートメントとENDステートメントはペアになる必要があり、その中にあるステートメントはDOグループを形成します。

DOステートメントには、以下の4つのタイプがあります。

  • タイプ1

  • タイプ2

  • タイプ3

  • タイプ4

タイプ1

タイプ 1は、DOグループを定義してDOグループ内のステートメントを実行します。タイプ1は、繰り返して実行することはできません。

figure syntax do type1
タイプ2とタイプ3

タイプ2とタイプ3は、DOグループを定義してDOグループ内のステートメントを実行します。繰り返して実行することができます。

タイプ 2 :

figure syntax do type2

タイプ3 :

figure syntax do type3

specification :

image

項目 説明

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グループ内のステートメントを無限に繰り返します。

figure syntax do type4
項目 説明

FOREVER

LOOPの同義語です。

LOOP

無限の繰り返しを定義します。

繰り返しを終了するには、GOTOまたはLEAVEステートメントを使用するか、プロシージャあるいはプログラムを終了します。