Ruby 2.4.0 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > Kernelモジュール > loop
loop -> Enumerator
[permalink][rdoc]loop { ... } -> object | nil
(中断されない限り)永遠にブロックの評価を繰り返します。ブロックが指定されなければ、代わりに Enumerator を返します。
例
loop do
print "Input: "
line = gets
break if !line or line =~ /^qQ/
# ...
end
与えられたブロック内で StopIteration を Kernel.#raise するとループを終了して Enumerator が最後に返した値を返します。ループを終了させる場合、通常は break を使用してください。
例
enum = Enumerator.new { |y|
y << "one"
y << "two"
:ok
}
result = loop {
puts enum.next
} # => :ok