More ... | HSPHelp:continue
continuecontinue p1 [ループをやり直す] p1 = 0〜 : 繰り返しカウンタ変更値 説明HSPHelp:repeat〜HSPHelp:loop間のループをやり直します。 HSPHelp:continue命令が実行されると、HSPHelp:repeat命令まで戻り次の繰り返しを実行します。 repeat 5 if cnt=2 : continue mes "cnt="+cnt loop 上の例では、システム変数cntが2になった時点で、 HSPHelp:continue命令が実行されるしくみになっています。上のスクリプトが実行されると、 cnt=0 cnt=1 cnt=3 cnt=4 のような表示になり、システム変数cntが2の時だけHSPHelp:mes命令が実行されないのがわかります。 最初はわかりにくいかもしれませんが、HSPHelp:continue命令は、HSPHelp:loop命令の場所ではないが、 HSPHelp:loop命令と同じ働きをするとも言えます。繰り返しのカウンタは、 HSPHelp:continue命令が実行された場合でも、HSPHelp:loop命令と同様1つ増加します。 もし、最後の繰り返しでHSPHelp:continue命令が実行されると、 HSPHelp:repeat〜HSPHelp:loopが終わった状態、つまりHSPHelp:loop命令の次の命令から実行を続けます。 さらにもう1つ、HSPHelp:continue命令にはパラメータを指定する使い方が存在します。 HSPHelp:continueの後に、数値または数値型変数を指定することにより、 繰り返しのカウンタを示すシステム変数cntの内容を変更することができます。 たとえば、「continue 1」と指定した場合は、システム変数cntの内容は1になり、 その値のままHSPHelp:repeat命令の次から繰り返しを続けます。パラメータを省略して、 ただの「continue」だけの場合はHSPHelp:loop命令と同様の処理、数値を指定すると、 カウンタの値を変更して繰り返しをやり直すことになります。ですから、 repeat 1 await 10 getkey a,1 if a=0 : continue 0 loop このようなスクリプトでは、通常1回だけしか実行されないはずの、 HSPHelp:repeat〜HSPHelp:loopの繰り返しですが、マウスの左ボタンが押されていない場合は、 カウンタが0に戻され無限ループの状態になります。これで、ボタンを押すまで待つという動作になります。 備考ver2.6標準命令 参照 |