[トップ][編集][ノート][編集履歴][一覧][最近の更新][->English]

HSPHelp:continue


continue

continue p1                     [ループをやり直す]

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

説明

HSPHelp:repeatHSPHelp: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:repeatHSPHelp: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:repeatHSPHelp:loopの繰り返しですが、マウスの左ボタンが押されていない場合は、 カウンタが0に戻され無限ループの状態になります。これで、ボタンを押すまで待つという動作になります。

備考

ver2.6標準命令

参照