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ループの始まりの場所を示す
foreach変数の要素数だけ繰り返す
loopループの始まりに戻る
breakループから抜ける

サンプル逆引き (2)

demo.hsp
shoot.hsp

情報

バージョン3.0
作成日2004/10/12
著作者onitama
URLhttp://www.onionsoft.net/
備考ver3.0標準命令
タイプ内蔵命令
グループプログラム制御命令
hs ファイルhsphelp\i_prog.hs