技術ブログ

(技術系中心)基本自分用備忘録なので、あくまで参考程度でお願いします。

繰り返し処理でのbreake, nextの使い分け

繰り返し処理でのbreake, nextの使い分け

繰り返し処理の中で挙動を制御する方法によく使うbreakeとnextがあります。 この挙動の違いをまとめます。

break

breakeを利用すると、繰り返し処理を抜ける事が出来ます。

numbers = [2, 4, 3, 6, 5]

numbers. each do | n |
  puts n
  break if n == 3 
end
#=> 2
#=> 4

numbersの値が3になった時に繰り返し処理を抜けている。 もちろんeachだけではなく、loop, while, untilなどの繰り返し処理の時でもbreakeは利用できる。

breakの注意点

繰り返し処理が入れ子構造の場合、一番内側のbreakスコープのみ抜ける。 一気に外側の繰り返し処理まで抜けたい場合はthrowとcatchを使った、大 域 脱出を利用する。

breakとreturnの違いは?

break →「 繰り返し 処理 からの 脱出」
return  →「 メソッド からの 脱出」 

next

繰り返し 処理 を 途中 で 中断 し、 次 の 繰り返し 処理 に 進める 場合 は next を 使い ます。

numbers = [1, 2, 3, 4, 5] 
numbers. each do | n |
  next if n. odd? 
  puts n
end 
#=> 2 # 4 

参考サイト: qiita.com