自由形式構文 | (許可されていない - FOR 命令コードを使用) |
コード | 演算項目 1 | 演算項目 2 | 結果フィールド | 標識 | ||
---|---|---|---|---|---|---|
DO | 開始値 | 限界値 | 指標値 |
DO 命令は、命令のグループを開始してそのグループを処理する回数を指示 します。 命令グループを処理する回数を指示するためには、指標フィールド、開始値、 および限界値を指定します。 対応する ENDDO ステートメントは、このグループの終わりを示します。DO グループの詳細については、構造化プログラミング命令を参照してください。
演算項目 1 には、数値リテラル、名前のついた定数、またはフィールド 名を使用して、小数点以下の桁数がゼロの開始値を指定します。 演算項目 1 を 指定しないと、開始値は 1 になります。
演算項目 2 には、数値フィールド名、リテラル、または名前のついた固定情 報を使用して、小数点以下の桁数がゼロの限界値を指定します。 演算項目 2 を指定しないと、限界値は 1 になります。
結果フィールドには、現在の指標値が入る数値フィールド名を指定します。 結果フィールドには、限界値に増分値を加えた値が入る十分な大きさが必要で す。 指標フィールドを指定しないと、内部使用のために指標フィールドが生成され ます。 指標フィールドの値は、DO 命令が開始されると演算項目 1 と置き換えられます。
対応する ENDDO 命令の演算項目 2 には、指標フィールドに加算する値を指 定します。 この値は、数値リテラルまたは小数点以下の桁数がゼロの数値フィールドとす ることができます。 これをブランクにすると、指標フィールドに加算される値は 1 になります。
DO グループは、DO 命令自体のほかに、DO および ENDDO ステートメントの 条件付け標識によっても制御されます。 DO ステートメントの条件付け標識は、 DO 命令を開始するかどうかを制御します。 これらの標識は DO ループの始めに 1 回だけ検査されます。 対応する ENDDO ステートメントの条件付け標識は、DO グループをもう一度繰 り返すかどうかを制御します。 これらの標識はそれぞれのループの終わりに検査されます。
DO 命令は次の 7 つのステップに従って実行されます。
DO 命令を指定する場合には次のことに留意してください。
これらの命令が DO 命令にどのような影響を与えるかについて は、LEAVE (Do/For グループからの抜け出し)および ITER (繰り返し)を参照してください。
初期値、増分値、および限界値の自由形式の式での、反復ループ の実行については、FOR (For)を参照してください。
詳細については、構造化プログラミング命令を参照してください。
*...1....+....2....+....3....+....4....+....5....+....6....+....7...+.... CL0N01Factor1+++++++Opcode(E)+Factor2+++++++Result++++++++Len++D+HiLoEq.... * * The DO group is processed 10 times when indicator 17 is on; * it stops running when the index value in field X, the result * field, is greater than the limit value (10) in factor 2. When * the DO group stops running, control passes to the operation * immediately following the ENDDO operation. Because factor 1 * in the DO operation is not specified, the starting value is 1. * Because factor 2 of the ENDDO operation is not specified, the * incrementing value is 1. C C 17 DO 10 X 3 0 C : C ENDDO * * The DO group can be processed 10 times. The DO group stops * running when the index value in field X is greater than * the limit value (20) in factor 2, or if indicator 50 is not on * when the ENDDO operation is encountered. When indicator 50 * is not on, the ENDDO operation is not processed; therefore, * control passes to the operation following the ENDDO operation. * The starting value of 2 is specified in factor 1 of the DO * operation, and the incrementing value of 2 is specified in * factor 2 of the ENDDO operation. * C 2 DO 20 X 3 0 C : C : C : C 50 ENDDO 2
(C) Copyright IBM Corporation 1992, 2006. All Rights Reserved.