技術ブログ

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

break, return, nextまとめ

break, return, nextまとめ

たまにこの辺りの使い分けややこしくなるのでまとめます。

break

breakを使うと、繰り返し処理を抜けることができます。

def block_break
  puts '----'
  (1..5).each do |i|
    break if i % 3 == 0
    puts i
  end
  puts 'end'
end
1
2
end

return

returnを使うと、メソッドを抜けることができます。

def block_return
  puts '----'
  (1..5).each do |i|
    return if i % 3 == 0
    puts i
  end
  puts 'end'
end
1
2

next

nextを利用すると、ループは抜けずに次の処理にスキップする

def block_next
  puts '----'
  (1..5).each do |i|
    next if i % 3 == 0
    puts i
  end
  puts 'end'
end
1
2
4
5
end

繰り返し処理で使うbreakとreturnの違い

breakを使うと「繰り返し処理からの脱出」になりますが、returnの場合は「(繰り返し処理のみならず)メソッドからの脱出」になります。 たまにこれがごっちゃになりバグに繋がる時があるので気をつけましょう。

break, return, next違いまとめ

next: 以降は実行せず、次のループを開始
break: ループを抜ける。
return: メソッドを抜ける

参考

ブロックについてのあれこれ - Qiita