繰り返し処理での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