ループをやり直す
continue p1
p1 = 0~ : 繰り返しカウンタ変更値
repeat~loop間のループをやり直します。 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命令が実行されると、repeat~loopが終わった状態、つまり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回だけしか実行されないはずの、 repeat~loopの繰り返しですが、マウスの左ボタンが押されていない場合は、カウンタが0に戻され無限ループの状態になります。 これで、ボタンを押すまで待つという動作になります。
バージョン | 3.4 |
作成日 | 2013/12/09 |
著作者 | onitama |
URL | http://hsp.tv/ |
備考 | ver3.4標準命令 |
タイプ | 内蔵命令 |
グループ | プログラム制御命令 |
対応環境 |
|
hs ファイル | hsphelp\i_prog.hs |