%DO

目的

グループで実行される一連のプリプロセッサ文を開始します。

構文

%[labe1:]... DO[index = start[TO finish[BY increment]] | 
                                  [BY increment [TO finish]]];

パラメーター

index はプリプロセッサ変数です。start、finish、および increment はプリプロセッサ式です。

説明

%DO 文およびそれに対応する %END 文は、プリプロセッサ DO グループを区切ります。また、DO グループの反復実行を指定することもできます。

プリプロセッサ DO グループは入れ子にすることができます。プリプロセッサ文も、プリプロセッサ文以外のテキストも、プリプロセッサ DO グループ内に記述できます。ただし、実行されるのはプリプロセッサ文だけです。プリプロセッサ文以外の文はスキャンされますが、対象となるのは実行可能な置換操作のみです。非反復のプリプロセッサ DO グループは、%IF 文の THEN 句または ELSE 句として役立ちます。

increment が 0 以下である場合、または startfinish よりも大きい場合、ループ本体は実行されません。

%DECLARE IX FIXED; 
%DO IX = 1 TO 4; 
A(IX) = IX;
%END

この例で生成されるテキストは次のようになります。

A(1) = 1;
A(2) = 2;
A(3) = 3;
A(4) = 4;