Rubyでbreakを使って戻り値を返す方法を現役エンジニアが解説【初心者向け】

初心者向けにRubyでbreakを使って戻り値を返す方法について現役エンジニアが解説しています。breakは一番内側のループを抜ける繰り返し制御構文のひとつです。関数の戻り値のようにbreakで戻り値を返すことが出来ます。breakの後に戻り値を指定するだけです。

TechAcademyマガジンは受講者数No.1のオンラインプログラミングスクールTechAcademy [テックアカデミー]が運営。初心者向けに解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。

Rubyでbreakを使って戻り値を返す方法について、TechAcademyのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。

Rubyについてそもそもよく分からないという方は、Rubyとは何なのか解説した記事を読むとさらに理解が深まります。

 

なお本記事は、TechAcademyのオンラインブートキャンプ、Ruby講座の内容をもとに紹介しています。

田島悠介

今回は、Rubyに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

Rubyでbreakを使って戻り値を返す方法について詳しく説明していくね!

大石ゆかり

お願いします!

 

戻り値とは

メソッドの呼び出し元へ「返す値」、メソッドが呼び出し元へ「戻す値」のことを、一般的に「戻り値」や「返り値」と呼びます。

メソッドは必ずどこで呼ばれて実行されますが、その呼び出し元へ必ずなんらかの値を戻します。この「メソッドを実行したあとに、実行結果としてなんらかの戻ってきた結果」を「戻り値」といいます。

「戻り値」というものをうまくイメージできない方は以下の点だけでも押さえてください。

  • メソッドを実行すると、必ず何らかの結果が返ってくる
  • メソッドを呼び出して、実行後に返ってきた値を「戻り値」と呼ぶ

大雑把な例え話になってしまいますが「メソッド」や「関数」は「自動販売機」に例えられます。

  1. 自動販売機に100円を入れてジュースを選ぶ = 引数を渡してメソッドを実行する
  2. 自動販売機の内部でガタゴト音がする = 処理が実行される
  3. その結果、取り出し口にジュースが出てきた = 実行結果の戻り値が返ってきた

少しは「戻り値」をイメージしやすくなったでしょうか?

breakとは

breakは一番内側のループを抜ける繰り返し制御構文のひとつです。ループを抜けるのは「もっとも近いループひとつだけ」という点に注意してください。

「 do …. end 」の「ブロック( block )を抜ける( break )」という表現は少し不自然です。「ブロック( block )」はdoからendまでのコードの式(塊)を指すだけであって、必ずしもループとイコールなわけではありません。「イテレーターをbreakする」という表現のほうが正確かもしれません。

また、Rubyではcase構文でbreakを必要としないため、break は純粋に繰り返し処理を脱出するために使われます。

[PR] Rubyのプログラミングで挫折しない学習方法を動画で公開中

breakを使って戻り値を返す方法

ループを中断させる break にも戻す値を指定することができます。以下の形式で返す値を指定します。

break 戻り値

 

実際に書いてみよう

# 通常 each はレシーバー自身( self )がそのまま返ります。
ret = [1,2,3,4,5].each {|v| }
p ret #=> [1, 2, 3, 4, 5]
# 戻り値を指定して break します。
# 値が 3 のときに 値を引数として break します。
ret = [1,2,3,4,5].each {|v| break v if v == 3 }
p ret #=> 3
__END__

 

まとめ

breakに戻り値を指定することで繰り返し処理から簡単に値を返すことができましたね。

どんどん活用していきましょう。

筆者プロフィール

メンター古川さん

Rubyが得意で、Webエンジニアとして最上流から最下流までセルフスターターとして活躍してきました。

近年セミリタイアし、フリーランスとして適度に働きながら穏やかな生活を楽しでいます。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

TechAcademyでは、初心者でも最短4週間で、Ruby on Railsを使ったプログラミングを習得できる、オンラインブートキャンプを開催しています。

また、現役エンジニアから学べる無料体験も実施しているので、ぜひ参加してみてください。