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ループから抜ける

サンプル逆引き (9)

d3m_techdemo.hsp
demo.hsp
hsplogo.hsp
hsptv_test2.hsp
hsptv_test3.hsp
shoot.hsp
test1.hsp
xsample_shiraho.hsp
yopparai.hsp

情報

バージョン3.4
作成日2013/12/09
著作者onitama
URLhttp://hsp.tv/
備考ver3.4標準命令
タイプ内蔵命令
グループプログラム制御命令
対応環境
  • Windows 版 HSP
  • コマンドライン版 HSP
  • HSPLet
hs ファイルhsphelp\i_prog.hs