質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

解決済

4回答

931閲覧

Rubyの戻り値について

taaaso

総合スコア16

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

0クリップ

投稿2019/01/31 08:37

現在、独学でRubyを勉強している初心者です。
戻り値というものが出てきたのですが、よく意味がわかりません。
どういうものなのか、わかりやすく教えていただきたいです。
また、どのようなときに使うためのものなのでしょうか。条件分岐と組み合わさると、余計混乱してしまいます、、、。
ご回答、よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kaba

2019/01/31 08:50

この質問の回答を得ただけでは本質的な改善は難しいと思います。 ruby 学習でぐぐるといいです。
guest

回答4

0

ベストアンサー

ざっくり言うと、プログラムは上から下に順番に実行されます。

ruby

1number = 4 2 3def double(n) 4 n * 2 5end 6 7result = double(number)

のような場合も、
number4 が代入され、メソッド double が定義される
② メソッドdoubleが定義される
resultdouble(number) の値が代入される
というような流れでプログラムが実行されます。

ここで、③のdouble(number) が実行されるとき、比喩的に言うと、コンピュータは、doubleが何なのかを知るため、③から②へ飛んで、そこで定義された内容に従って計算を行い、再び③に戻って、result = double(number)double(number) の位置に、計算結果の 8 を戻し(返し)、result = 8 が実行されます。

そういう訳で、メソッドを実行する際、いったん定義式の場所に飛び、計算が終わると、プログラム上の元の場所に値を戻す(返す)ことになるため、メソッを実行した結果得られる値のことを「戻り値」だとか「返り値」だとか呼ぶようになったようです。

投稿2019/01/31 10:23

kts_h

総合スコア207

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

taaaso

2019/01/31 16:49

順を追って、とても詳しく比喩的にわかりやすく説明していただきありがとうございます!!とてもよく分かりました。 また明日から、説明して頂いたことを確認しながら、勉強して行きたいと思います!
guest

0

... 独学でRubyを勉強 ...

どんな風に勉強を勧めていますか?

入門書を購入するか、図書館で借りて 地道に基礎を勉強していくことをお勧めします。
メソッドとか、返り値について解説があるはずです。

投稿2019/01/31 12:02

katoy

総合スコア22324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

最終的に評価されて返ってくる値が戻り値(返り値)です。
出力される値とは別物なので注意です。

ruby

1123.to_s 2#=> '123' 3 4def greeting(time) 5 if time == 'morning' 6 'Good morning.' 7 elsif time == 'evening' 8 'Good evening.' 9 end 10end 11 12greeting('evening') 13#=> 'Good evening.' 14 15puts 'Hello!' 16#=> nil

それぞれ返り値です。

投稿2019/01/31 09:12

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

プログラミング自体が初めてでしょうか?
まず、「メソッド」とは何かを勉強してください。

例えば、文字列の長さを調べるsizeというメソッドがあります。
"abc".sizeと書いたときの、3が戻り値(普通は返り値という)です。

Ruby

1str = "何らかの文字列" 2if str.size > 5 3 文字列のサイズが5より大きいときの処理 4end

こんな感じです。

自分でメソッドを定義する場合は、

Ruby

1def add(x,y) 2 x + y 3end 4 5a = add(10, 5)

とすると、add(10, 5)の返り値は15になります。

投稿2019/01/31 08:51

otn

総合スコア84423

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問