第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 更新