continue

ループをやり直す

continue p1

p1 = 0~ : 繰り返しカウンタ変更値

解説

repeatloop間のループをやり直します。
continue命令が実行されると、repeat命令まで戻り次の繰り返しを実行します。

repeat 5
if cnt=2 : continue
mes "cnt="+cnt
loop

上の例では、システム変数cntが2になった時点で、continue命令が実行される
しくみになっています。
上のスクリプトが実行されると、

cnt=0
cnt=1
cnt=3
cnt=4

のような表示になり、システム変数cntが2の時だけmes命令が実行されないのが
わかります。
最初はわかりにくいかもしれませんが、continue命令は、loop命令の場所ではないが、
loop命令と同じ働きをするとも言えます。
繰り返しのカウンタは、continue命令が実行された場合でも、loop命令と同様1つ
増加します。もし、最後の繰り返しでcontinue命令が実行されると、repeatloopが
終わった状態、つまりloop命令の次の命令から実行を続けます。

さらにもう1つ、continue命令にはパラメータを指定する使い方が存在します。
continueの後に、数値または数値型変数を指定することにより、繰り返しのカウンタ
を示すシステム変数cntの内容を変更することができます。
たとえば、「continue 1」と指定した場合は、システム変数cntの内容は1になり、
その値のままrepeat命令の次から繰り返しを続けます。
パラメータを省略して、ただの「continue」だけの場合はloop命令と同様の処理、
数値を指定すると、カウンタの値を変更して繰り返しをやり直すことになります。
ですから、

repeat 1
await 10
getkey a,1
if a=0 : continue 0
loop

このようなスクリプトでは、通常1回だけしか実行されないはずの、repeatloopの
繰り返しですが、マウスの左ボタンが押されていない場合は、カウンタが0に戻され
無限ループの状態になります。これで、ボタンを押すまで待つという動作になります。

関連項目

repeatループの始まりの場所を示す
loopループの始まりに戻る
breakループから抜ける

サンプル逆引き (2)

module_test2.as
test_libload3.as

情報

バージョン2.61
作成日2004/03/01
著作者onitama
URLhttp://www.onionsoft.net/
備考ver2.61標準命令
タイプ内蔵命令
グループプログラム制御命令
hs ファイルhsphelp\i_prog.HS