WHILEの概要
WHILEの基本
UWSCでは複数のループ命令が用意されているが、その中でもWHILEは不定回数繰り返し処理する場合に用いられる。
WHILEで指定された式が真である場合、処理が実行され、WENDまで処理が行われる。
WHILE 式
処理
WEND
基本的に上記のように使われる。
WHILEでループさせる場合の注意点
WHILEは条件式の指定を間違えると無限ループに陥ってしまう可能性がある。
その際にウェイト処理でSLEEP関数を入れていないとCPUの負荷がものすごいことになってしまう。
最低限SLEEP命令を入れて負荷を下げるべき。
できれば条件式でスクリプトを終了させやすくすべき。
WHILEの使い方
WHILEのサンプル
WHILEの注意点を考慮すると次のような使い方をテンプレートとして用いたほうが安全だろう。
WHILE !GETKEYSTATE(VK_ESC)
SLEEP(0.1)
WEND
!GETKEYSTATE(VK_ESC)はエスケープキーの入力状況を判断する命令だ。
上記のサンプルではエスケープキーが押されるとループを終了させるようにしてある。
そしてSLEEP命令は指定した時間だけ待機する命令だ。
秒単位で指定でき、最小時間は0.001秒になる。
上記のサンプルでは0.1秒にしてあるが、実際にそこまでシビアなタイミングを求められないループなら問題ないだろう。
ループ処理の抜け方
UWSCではループ処理の途中でループを抜けたり、ループの先頭に戻る命令が用意されている。
- BREAK ループを抜ける
- CONTINUE ループの先頭に戻る
これらの命令を用いればループ処理を制御できる。
厳密には多重ループを何回分抜けるか指定できるが通常は無指定で問題ないだろう。
必要になったら改めて使い方を調べてほしい。
とはいえ何回分か回数を指定するだけなのだが。