関数を学んでいると必ず出てくるのが、「戻り値(もどりち)」の存在です。
参考書やサイトによっては「返り値(かえりち)」と書いてあることもありますが、どちらも同じ意味になります。
戻り値を一言で説明すると、「関数が返す値」です。そのままですね。
もう少し詳しく説明するならば、「関数を実行したときに出力される値」のことをいいます。
ただ、ここで1つ注意してほしいのは、戻り値の扱いは覚えるプログラミング言語によっても多少違うということです。
そこで今回は、言語による違いを比較しながら理解できるよう、「C言語」と「Ruby言語」を例に紹介していきます。
関数の理解に不安な方は、さきにこちらの記事を読むと理解しやすいと思います。

もくじ
関数の戻り値(返り値)とは
まず、関数の戻り値(返り値)について確認しておきましょう。
これは関数を「自動販売機」に例えるとわかりやすいです。
自動販売機は、「お金」を入れると「ジュース」が出てきますよね。
関数もこれと同じで、「引数」を渡すと「戻り値」が出力されるのです。
つまり、戻り値とは「関数が実行されたときに返ってくる値」のことをいいます。
「返す」とか「戻る」という表現に違和感を感じる方も多いと思います。
「べつに関数に何か貸したつもりはないんだけど…」と僕は考えてしまいました。
これと似たものに、アプリやサイトを「作る」ことを「開発する」といったりもします。これも別に何かを研究したり発明したりするわけではありませんが、よく使われる用語です。
このように、IT業界では理解しづらい表現がよく使われるので、「そういうもんなのか~」とあまり気にせず納得しちゃったほうがいいかもしれません。
C言語の関数の戻り値(return)
まずは、C言語の関数の例から見てみましょう。
int calculation(int price) {
int total_price = price + 10;
return total_price;
}
calculation(100);
戻り値は、どのプログラミング言語でも「return(リターン)」のあとに続けて書くのが基本になります。
つまり、戻り値にしたい「値」や「式」の前に、「return」という文字を書けば戻り値となるのです。
この関数での戻り値は変数「total_price」の中の値、つまり「110」という値が戻り値となります。
ここまでは、なんとなく理解できたのではないでしょうか?
ただ、C言語はここから少し難しくなってきます。
まず、C言語では「関数の戻り値の型を最初に記述する」というルールがあります。
さきほどの関数の戻り値は「110」など、整数の値になるため「int型(整数型)」となり、関数定義の最初に「int」と書く必要があります。
「何を言っているのか全然わからない!」
そんな方も安心してください。もともとC言語は、初心者には少し難しいプログラミング言語なのです。
このあと説明する「Ruby」の戻り値の例を見て理解できれば、とりあえずOK。最悪、C言語は忘れてもいいです。
「型」についてもっと知りたい方だけ、こちらの記事をどうぞ!

Rubyの関数の戻り値(return)
では、さきほどのC言語と見比べながらRubyの関数の戻り値を確認しましょう。
def calculation(price)
total_price = price + 10
return total_price
end
calculation(100)
基本的にはC言語と同じで、戻り値にしたい値や式の前に「return(リターン)」をつけます。
ただ、1つ違うのはC言語のように「戻り値の型を定義しなくていい」ということです。
その代わり、関数定義の最初に「def」と書く必要があります。これは「define(定義する)」の略ですね。
文字通り「関数を定義するよ!」と宣言していると思ってもらえればいいです。
そして実は、Rubyで関数を書く場合は、もっとシンプルに記述することができます。
def calculation(price)
price + 10
end
calculation(100)
なんと「return」を省略できるのです!
Rubyの場合、関数の最後にある処理結果を自動で「return」する仕組みになっています。
ちなみに、ほかのプログラミング言語で「return」を省略すると、戻り値のない関数という扱いになりますので注意。

戻り値と引数の違いは?
戻り値と似たものに、「引数(ひきすう)」というものがあります。
引数は「関数に渡す値」のことです。
さきほどの自動販売機を例にすると、関数が「自動販売機」で引数が「お金」ですね。
引数を関数に渡すことで、関数の処理結果を変えられるメリットがあります。

まとめ
- 戻り値(もどりち)とは、関数が返す「値」のこと
- 戻り値と返り値(かえりち)は同じ意味
- 「返す」とか「戻す」って用語はよく使われるけど気にしない
- 戻り値の扱いはプログラミング言語によって多少違う
- 戻り値は「return」のあとに書く
- C言語は「型」を理解しないと難しい
- Rubyはシンプルに書けて「return」も省略できる
- 引数とは、関数に渡す「値」のこと
今回は、「C」と「Ruby」で関数の戻り値を比較してみました。
プログラミング言語の違いを知るキッカケにもなったかと思います。
C言語は古くから使われているプログラミング言語であり、コンピューターの知識も多少必要となってくるため、初心者には少し難しい言語かもしれません。
一方、Rubyは「楽しくプログラミングする」という設計思想のもとに作られたプログラミング言語なので、ほかの言語と比べて楽しく直感的に書けるのが特徴です。
どのプログラミング言語を学ぼうか迷っている方は、こちらの記事も読んでみてくださいね。

それでは、よいプログラミングライフを!
またね、キツネ(@kitaaaa_kitsune)でした!
