ホーム > HSP講座 > HSPの基本編 > 第11章 繰り返し

第11章 繰り返し

登録タグ: HSP3 Hot Soup Processor Hot Soup Processor3 ホットスーププロセッサー 繰り返し repeat loop cnt


今回は、繰り返しについてです。
繰り返しもスクリプトを記述していく上でとても重要になってきます。

繰り返しはプログラム中で同じ処理を何回か繰り返したい場合に使用します。
同じ処理を何回も行わせる時に、同じプログラムを連続して記述していく方法もあります。
しかし、そうするとプログラムの文章自体が長くなってしまいます。

そこで、繰り返しを使うとそのような状態を防ぐことができ、さらにプログラムをスッキリさせることも出来ます。
今回は、繰り返し命令の中でも一番シンプルで扱いやすいrepeat - loop命令を使います。

まずは簡単なサンプルスクリプトをご覧ください。

; repeat - loop文を使った繰り返し処理
; repeat命令を使って処理をスタートさせる
repeat 10
    ; システム変数cntを使うと、今行っているの処理が
    ; 何回目なのかが分かるため、非常に便利です。
    mes "繰り返し処理 " + cnt + " 回目です。"
; 繰り返し処理はここまで、loop命令を使う
loop

; stop命令を使用してプログラムを終了する
stop

このスクリプトを実行すると、画面に繰り返し処理 0 回目です。から繰り返し処理 9 回目です。まで、
合計10回文章が表示されると思います。

一番最初に使ったrepeat命令で、ループ回数を10に指定したため10回繰り返されたわけです。
ここで1つ注意することがあります。

repeat命令の最初のパラメータ(今回は10と指定したところ)を指定しなかったり、マイナス値にしたりすると、
無限ループとなってしまいます。
パソコンの動作が鈍くなり、最悪の場合フリーズする(動かなくなる)かもしれないので注意してください。

ちなみにシステム変数cntは、通常0から始まりますが、これを意図的に変更することもできます。
それでは、以下のスクリプトを実行してみてください。

; repeat - loop文を使った繰り返し処理
; repeat命令を使って処理をスタートさせる
repeat 10 , 1
    ; システム変数cntを使うと、今行っているの処理が
    ; 何回目なのかが分かるため、非常に便利です。
    mes "繰り返し処理 " + cnt + " 回目です。"
; 繰り返し処理はここまで、loop命令を使う
loop

; stop命令を使用してプログラムを終了する
stop

上記のように記述すると、システム変数cntを1からスタートさせることができます。
repeat命令の2つ目のパラメータに1と指定すればいいです。とても簡単ですね。

ただし、1つ目のパラメータに-1を指定すると無限ループになってしまうので注意してください。

; repeat - loop文を使った無限繰り返し処理
; repeat命令を使って処理をスタートさせる
; ただし↓こう記述すると無限ループになる
repeat -1
    mes "ずっと無限ループが続くよ。"
; 繰り返し処理はここまで、loop命令を使う
loop

; 無限ループなのでstop命令が無意味になる
stop

こうしてしまうとパソコンが重くなるので危険です。

また、1つ目のパラメータに0を指定するとループを飛ばすこともできます。

; repeat - loop文を使った繰り返し処理を飛ばす
mes "repeat命令直前、ここは表示されます。"
; repeat命令の1つ目のパラメータが0なので
; ループ処理が飛ばされる
repeat 0
    mes "ここは飛ばされます、表示されません。"
; loop命令以降は処理されます。
loop
mes "loop命令直後、ここは表示されます。"
; stop命令を使用してプログラムを終了する
stop

こうすると、repeat命令直前、ここは表示されます。のあとに改行されてloop命令直後、ここは表示されます。と表示されます。

今回は以上です。次回は繰り返し その2をやろうと思います。

← 前へ | 次へ →


カテゴリー:HSPの基本編
2011/09/12 14:35:34 更新

Powered by AkiWiki. Wiki syntax is based on PukiWiki, and extends it.

スポンサード リンク

メニュー

HTML講座

HSP講座

Inkscape講座

スポンサード リンク