Ruby 1.9.3 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > Kernelモジュール > loop
loop { ... } -> object
[permalink][rdoc](中断されない限り)永遠にブロックの評価を繰り返します。
与えられたブロック内で StopIteration を Kernel.#raise すると ループを終了して nil を返します。 ループを終了させる場合、通常は break を使用してください。
def try int n = 0 loop do n += 1 break(n) if rand(n) > int end end puts "end on #{try(400)}" #=> end on ???