無限ループ内でループ回数を数えるメモ
Rubyで無限ループを回した時にループ回数を取得したい時用のメモ。
今までは
count = 0 loop do #なんか処理 break if count == 100 count += 1 end
と変数を用意してたけど
こう書ける事を知った。
0.upto(0/(0.0)) do |count| #なんか処理 break if count == 100 end
0/(0.0)でINFINITYになるので無限ループになります。
しかし、0.0ではなく0で割ると「ZeroDivisionError: divided by 0」になってしまいます。
0.0で割れるとは知らなかった。
- 追記
Rubyでの無限ループのカウント - はてなかよっ!でloopとuptoでベンチ結果が掲載されています。
loopの方が速いですね。
しかし、Ver1.9だとループ回ってないようです。
ソースを後ほど見てみたいと思います。