グループで実行される一連のプリプロセッサ文を開始します。
%[labe1:]... DO[index = start[TO finish[BY increment]] | [BY increment [TO finish]]];
index はプリプロセッサ変数です。start、finish、および increment はプリプロセッサ式です。
%DECLARE IX FIXED; %DO IX = 1 TO 4; A(IX) = IX; %END
この例で生成されるテキストは次のようになります。
A(1) = 1; A(2) = 2; A(3) = 3; A(4) = 4;
説明
%DO 文およびそれに対応する %END 文は、プリプロセッサ DO グループを区切ります。また、DO グループの反復実行を指定することもできます。
プリプロセッサ DO グループは入れ子にすることができます。プリプロセッサ文も、プリプロセッサ文以外のテキストも、プリプロセッサ DO グループ内に記述できます。ただし、実行されるのはプリプロセッサ文だけです。プリプロセッサ文以外の文はスキャンされますが、対象となるのは実行可能な置換操作のみです。非反復のプリプロセッサ DO グループは、%IF 文の THEN 句または ELSE 句として役立ちます。
increment が 0 以下である場合、または start が finish よりも大きい場合、ループ本体は実行されません。