FOR operand1
|
[:]= |
|||||||||
|
||||||||||
STEP |
||||||||||
statement | ||||||||||
END-FOR
|
(structured mode only) | |||||||||
[LOOP ]
|
(reporting mode only) |
注意:
互換性保持のために、キーワード :=
、EQ
、FROM
、TO
、THRU
、および STEP
は、算術演算ではなく対応する後続のオペランド(operand2、operand3、または operand4)が使用されている場合は省略可能です。
このドキュメントでは、次のトピックについて説明します。
構文図で使用されている記号については、「構文記号」を参照してください。
関連機能グループ:「ループ実行」
FOR
ステートメントは、処理ループを開始し、ループの処理回数を制御するために使用します。
FOR
ループに入る前に、オペランドの値に矛盾がないか(operand2 に operand4 を繰り返し加算し、operand3 の値以上になるか)を確かめます。 値に矛盾があれば、FOR
ループには入りません(エラーメッセージは出力されません)。
オペランド定義テーブル:
オペランド | 構文要素 | フォーマット | ステートメント参照 | ダイナミック定義 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operand1 | S | N | P | I | F | 可 | 可 | |||||||||||||
operand2 | C | S | N | E | N | P | I | F | 可 | 不可 | ||||||||||
operand3 | C | S | N | E | N | P | I | F | 可 | 不可 | ||||||||||
operand4 | C | S | N | E | N | P | I | F | 可 | 不可 |
構文要素の説明:
operand1 |
ループ制御変数(operand1)および初期設定(operand2)
operand1 は、処理ループの実行回数を制御します。 データベースフィールドまたはユーザー定義変数が使用できます。 キーワード 処理ループ実行中にループ制御変数を参照できます。ループ制御変数には、その現在値が含まれます。 |
---|---|
operand2 | |
operand3 |
TO 値:
処理ループは、operand1 が operand3 の値よりも大きくなると( |
operand4 |
STEP 値:
ループに入るときに operand4 を "0" にすることはできません。 |
(arithmetic-expression) | operand2、operand3、または operand4 の代わりに算術演算を指定できます。 算術式の詳細については、COMPUTE ステートメントの説明にある arithmetic-expression を参照してください。
注意: |
END-FOR |
|
** Example 'FOREX1S': FOR (structured mode) ************************************************************************ DEFINE DATA LOCAL 1 #INDEX (I1) 1 #ROOT (N2.7) END-DEFINE * FOR #INDEX 1 TO 5 COMPUTE #ROOT = SQRT (#INDEX) WRITE NOTITLE '=' #INDEX 3X '=' #ROOT END-FOR * SKIP 1 FOR #INDEX 1 TO 5 STEP 2 COMPUTE #ROOT = SQRT (#INDEX) WRITE '=' #INDEX 3X '=' #ROOT END-FOR * END
#INDEX: 1 #ROOT: 1.0000000 #INDEX: 2 #ROOT: 1.4142135 #INDEX: 3 #ROOT: 1.7320508 #INDEX: 4 #ROOT: 2.0000000 #INDEX: 5 #ROOT: 2.2360679 #INDEX: 1 #ROOT: 1.0000000 #INDEX: 3 #ROOT: 1.7320508 #INDEX: 5 #ROOT: 2.2360679
レポーティングモードの例:FOREX1R。