map関数などの繰り返しの処理の中で、
ある条件のときだけ次のループに行きそのまま処理を続けたいときはreturnじゃなくてnextを使う。
##next
nextはもっとも内側のループの次の繰り返しにジャンプします。
n + 1
が偶数のときにputs "hello! #{n + 1}回目"
を実行せずに次のループにいく。
def next_method
5.times do |n|
next if (n + 1).even?
puts "hello! #{n + 1}回目"
end
puts "完了!"
end
next_method
#=>hello! 1回目
#=>hello! 3回目
#=>hello! 5回目
#=>完了!
##return
式の値を戻り値としてメソッドの実行を終了します。
n + 1
が偶数のときに処理を抜けるので「2回目」は実行されない。
def block_return
5.times do |n|
return if (n + 1).even?
puts "hello! #{n + 1}回目"
end
puts "完了!"
end
block_return
#=>hello! 1回目
##参考