More ... | HSPHelp:repeat
repeatrepeat p1,p2 [repeat〜loopの間をくり返し実行]
p1 = 1〜(-1) : 条件式
p2 = 0〜(0) : システム変数 cnt のスタート値
説明repeat〜loopの間をくり返し実行します。 repeat命令は、くり返しの開始地点を示します。 loop命令は最後に通過したrepeat命令まで戻ります。つまり、 例: repeat 5
print "hoge!!"
loop
のようなプログラムは、「hoge!!」を5回表示します。 repeat命令のパラメータ、p1でくり返しの回数を指定することが できます。回数の指定を省略、またはマイナス値を指定すると 無限ループになります。 繰り返しの回数が0の場合は、繰り返し部分は実行されず対応する loop命令までジャンプします。 例: repeat -1
wait 3
print "hoge"
loop
stop
例: repeat 0
print "hoge?"
loop
print "foo!!"
stop
repeat〜loopを含む部分をさらにループさせるネスト構造も記述 することができます。ただし、正常にloop命令を通ってループ しないで抜けたりすると、ネスト構造がおかしくなるのでループ から強制的に抜けるような構造にはしないようにしてください。 例: px=0 :py=0 :dx=5 :dy=10
ppx=px+dx :ppy=py+dy
clf = 0xFFFFFF
peek cr,clf,2 :peek cg,clf,1 :peek cb,clf,0
repeat winy/dy
cny = cnt
repeat winx/dx
r = cr-(cnt&cny) :g = cg-(cnt|cny) :b = cb-(cnt^cny)
pdx = cnt*dx :pdy = cny*dy
color r,g,b
boxf px+pdx,py+pdy,ppx+pdx,ppy+pdy
loop
loop
stop
ループ回数を調べたい時や、カウンターを利用したい時のために システム変数cntを参照することができます。cntは通常、0から スタートして、loop命令でループするたびに1づつ増えていきます。 ただし、repeat命令のp2でカウンタがスタートする数値を変更する ことも可能です。たとえば、repeat 3,1 のように指定した場合 には、変数cntの値は1,2,3の順で変化します。 例: repeat 30
wait 3
redraw 0
title "count: "+cnt
color 0xFF,0xFF,0xFF :boxf 0,0,winx,winy
color 0x32,0x32,0x3f
pos cnt<<4,cnt<<4 :print ">>hoge"
redraw 1
loop
stop
ループの内部で、強制的にループを抜け出す場合には、break命令 を使用してください。また、ループをやり直すためのcontinue命令 も用意されています。 例: repeat
wait 3
getkey ShiftKey,16
getkey CtrlKey,17
if ShiftKey { break }
if CtrlKey { continue 0 }
title "count: "+cnt
loop
end
グループプログラム制御命令 備考ver2.61標準命令 参照
|