on のヘルプにも書いてありますね。
てことは、on の飛び先はコンパイル時に飛び先をテーブル化している可能性が高くて、
実行時に文字列を評価する goto よりも速い??
(1)
for i = 1 to n
on i and 1 goto @false, @true '※1
@true: goto @endif
@false
@endif
next
(2) ※1を
if i and 1 then @true else @false
に変えたバージョン
これの時間を計ると 100:111 くらいで(1)が速いみたいですね。
せいふぁさん
if n then return ((x>>1) and &h7fffffff) >> (n-1) else return x
かあ
面白いこと考えますね。
これだったら n > 0 を前提にして条件分岐させないのがいいですね。
aryop化を考えると配列を二回シフトさせるので不利ですが。