Hitachi

JP1 Version 12 JP1/IT Desktop Management 2 配布機能 運用ガイド


18.6.6 for-next

for-nextステートメントは、条件がfalseになるまで式を繰り返し実行します。for-nextステートメントのオプション式を使用すると、for-nextステートメントの実行中に初期設定や値を変更できます。

一般にループが繰り返される回数は、カウンタによって決まります。

〈この項の構成〉

(1) 形式

for ( [初期化式] ; [条件式] ; [ループ式] ) 
     式1;
     式2;
next;

(2) 説明

  1. 初期化式が指定されていると、この式が評価されます。この式は、ループの初期化を指定します。初期化式には、型の制限はありません。

  2. 条件式が指定されていると、この式が評価されます。この評価は、それぞれの繰り返しをする前に実行されますが、次の3つの結果が考えられます。

    • 条件式がtrue(0以外)の場合は、ステートメントが実行されます。ループ式が指定されていると、次にこの式が評価されます。そして、条件式の評価から実行が繰り返されます。

    • 条件式の指定が省略されているときは、条件式はtrueと解釈され、上記と同様に実行されます。引数で条件式を指定しないと、ステートメント本体の内部でbreakステートメントが実行されたとき、またはgotoステートメント(ステートメント本体の外側のラベル付きステートメントに対応したもの)が実行された時に、forステートメントは終了します。

    • 条件式がfalse(0)のときは、for-nextステートメントの実行が終了し、制御が同じプログラム内の次のステートメントに移ります。

  3. ステートメント本体でbreakステートメントが指定されていると、その時点でループは停止します。

  4. ステートメント本体でcontinueステートメントが指定されていると、それ以降の実行をスキップし、条件式が評価されます。条件がtrueのときは、実行が繰り返されます。

なお、ネストするfor-next構造体の数は、255以内に抑えてください。

(3) 記述例

DEFINE
{
integer WINH,count,length;
float SLEEP_TIME=0.5;
string s1,s2;
integer i,sloop_cnt   = 0;
integer sloop_max = 30;
}
...
...
sloop_cnt=1;
AIT_LogMessage("Searching for Active windows - For");
for(; sloop_cnt < sloop_max ;sloop_cnt = sloop_cnt + 1)
    if (AIT_FocusWindow("Unpacking", "#32770",0.0) > 0)
        if(AIT_FocusWindow("Unpacking Installable Software...", "#32770", 0.0) > 0)
               AIT_LogMessage("Unpacking Installable Software... is opened");
               sloop_cnt= 0;
               AIT_Sleep(SLEEP_TIME);
        endif;
        endif;
   AIT_Sleep(SLEEP_TIME);
next;