break, next, return
- next: 以降は実行せず、次のループを開始
- break: ループを抜ける。
- return: メソッドを抜ける
JavaScriptでいうと、next は continue に相当。
return するとブロックを抜けて、メソッドも抜けることに注意。
def block_next
puts '----'
(1..5).each do |i|
next if i % 3 == 0
puts i
end
puts 'end'
end
def block_break
puts '----'
(1..5).each do |i|
break if i % 3 == 0
puts i
end
puts 'end'
end
def block_return
puts '----'
(1..5).each do |i|
return if i % 3 == 0
puts i
end
puts 'end'
end
block_next
block_break
block_return
出力結果
----
1
2
4
5
end
----
1
2
end
----
1
2
ブロックの戻り値を指定する
break に引数を指定したら、ブロックの戻り値になる。
1.tap {|i| break i+1}
# => 2
1.tap {|i| }
# => 1