FOR文の構文は以下の2通りです。
FOR 変数=数字 TO 数字 [DO] 複文 FOR 変数=数字 DOWNTO 数字 [DO] 複文
[]内は省略可能です。
「変数」とは、グローバル変数、ローカル変数、引数のことです。
「数字」とは、グローバル変数、ローカル変数、引数、定数、システム変数、計算式、ユーザー定義関数(戻り値が数値)の7つのことです。
TOの場合、変数は1づつ増えていきます。
FOR #i=1 TO 3 DO {...} の場合、 #iは 1, 2, 3と変化していきます。
FOR #i=3 TO 2 DO {...} のように最初の数字が、次の数字より大きいと複文は実行されません。#iには最初の数字である3は「代入されません」。
例) #i=0; FOR #i=1 TO #_MARKNUM DO { // #_MARKNUMが0の時 GetMarkATTR(#_ACTIVEWINDOW,$work,#i); // は実行されない。 PosStr(#d,$work,'D'); IF (#d<>0) THEN { IncNum(#r); }; }; IF (#i<>0) THEN { ShowMessage('#_MARKNUM>0でした','test',0); } ELSE { ShowMessage('#_MARKNUM==0でした','test',0); };
DOWNTOの場合は、逆に1づつ減っていきます。
FOR #i=3 DOWNTO 1 DO {...} の場合、 #iは 3, 2, 1と変化していきます。
FOR #i=1 DOWNTO 2 DO {...} のように最初の数字が、次の数字より小さいと複文は実行されません。#iには最初の数字である1は「代入されません」。
なお、複文の中で、ループに使用している変数の中身を変更すると、実行時に文法エラーが発生してSTLの実行が中断されます。