TOP命令一覧制御系命令>LOOP[]
 GO[]  GOSUB[]  RETURN[]  LOOP[]  LOOPBREAK[]  LOOPCONTINUE[]  LOOPEND[]  WAIT[]
 IF[]  ELSE[]  IFEND[]  IFBREAK[]  IFCONTINUE[]  TASK[]  TASKINFO[]  TASKEND[]  END[]

■繰り返し命令 LOOP[ ]〜LOOPEND[ ]


指定した回数だけ、LOOP〜LOOPEND の中をループします。

LOOP[SET=]
・
・ (SETで指定した回数分、この中の命令が実行される)LOOPEND[ ]


値に0がセットされた場合は、LOOP〜LOOPEND ブロックの中を一度も通らず、
LOOPEND 命令の次の位置から実行されます。

また、SET キーワードの記述を省略した場合、無限ループとなります。

システム変数 @_LC が、ループカウンタとして利用できます。
5回のループとした場合、1周ループする度に、@_LC の値が 1 〜 5 まで変化していきます。

LOOP の中にさらにLOOP を書くことが出来ます(LOOPのネスト)。
LOOP文は最大64回までネストすることが出来ます。


LOOP〜LOOPEND ブロックの中で、LOOPBREAK 命令を実行すると、
その時点で LOOP〜LOOPEND ブロックを抜け、LOOPEND 命令の次の位置から実行されます。

LOOP[SET=]
・
・
    LOOPBREAK[ ] (ここで、LOOPEND まで飛ぶ)
・
・
LOOPEND[ ]


LOOP〜LOOPEND ブロックの中で、LOOPCONTINUE 命令を実行すると、
直前の LOOP 命令まで戻り、LOOP 命令の次の位置からやり直します。
その際、ループが1回分カウントされます。

LOOP[SET=]
・
・
    LOOPCONTINUE[ ] (ここで、LOOP まで戻る)
・
・
LOOPEND[ ]


また、LV キーワードを使って、LOOPBREAK や LOOPCONTINUE で戻る際のネストレベルを
設定することもできます。

LOOP[SET=]
     ・
     ・
    LOOP[SET=]
          ・
          ・
       LOOPBREAK[LV=2] (ここで、いきなり※1の位置まで飛ぶ)
          ・
          ・
    LOOPEND[ ]
     ・
     ・
LOOPEND[ ] // ※1


LOOPBREAK 命令で、通常はレベルが1段階戻るところを、LV=2 とすることで、
2段階ネストレベルが戻ります。



[1] 「レイヤーを1ドット右へ移動させる」処理と「1フレーム分待つ」処理を、100回繰り返す。
  (※レイヤーを左から右へアニメーションさせる)

CG[ID=BG FILE="ABC.BMP"]
LOOP[SET=100]
   CG[ID=BG X+=1]
   WAIT[FRAME=1]
LOOPEND[ ]