見出し画像

Ruby next break returnの挙動の違いについて見てみる.

nextの挙動

以下のサンプルコードでの挙動のように

繰り返し処理の中でnextが呼ばれると,その時点で処理をスキップして次の繰り返し処理を実行します.

def next_method
 ('a'..'e').each do |i|
   next if i == 'c'
   puts i
 end
 puts '----end----'
end

next_method

#=> 
a
b
d
e
----end----

breakの挙動

以下のサンプルコードでの挙動のように

繰り返し処理の中でbreakが呼ばれると,そこでループが終了してブロックから処理が抜けます.

※ただしこのあと説明するreturnとは違い,メソッドからは抜けません.

def break_method
 ('a'..'e').each do |i|
   break if i == 'c'
   puts i
 end
 puts '----end----'
end

break_method

#=>
a
b
----end----

returnの挙動

以下のサンプルコードでの挙動のように

returnが呼ばれるとメソッドそのものを抜けます.

その証拠に puts '----end----' 部分が呼ばれていません. 

def return_method
   ('a'..'e').each do |i|
   return if i == 'c'
   puts i
 end
 puts '----end----'
end

return_method

#=>
a
b


この記事が参加している募集

この記事が気に入ったらサポートをしてみませんか?