コードモンキー日本公式サイト

コードモンキーの最新情報やプログラミング学習に有益な各種情報をお届けします。


コードモンキーサポートデスクに寄せられたユーザーからのご質問およびコードモンキーサポートデスクからの回答を紹介しております。
今回寄せられたご質問は、前回に続いてまた関数のreturn(戻り値)の考え方について


ユーザー様からのご質問

コードの冒険チャレンジNo.151の「関数から値を返すことができるよ」とはいったいどういう意味ですか?
また、No.152の関数yummy()は「引数によって戻り値が変わる」とのことですが、どういうことですか? 教えてください。

サポートデスクからの回答

いつもコードモンキーをご利用いただきありがとうございます。
いただいたご質問につき回答いたします。

コードの冒険チャレンジNo.151からの「リターン・アベニュー」では、return文をつかった関数の戻り値という考え方を学習します。

戻り値とは、関数が返す値

関数の戻り値とは、関数の呼び出し元に関数が返す値のことで、例えば、以下のように定義されたexampleという関数は、return のあとに記述された内容「not banana.rotten()」を関数の呼び出し元に返します。

example = ()->
	return not banana.rotten()

つまり、この関数exampleを以下のように呼び出すと、

if example()

実行時には関数example()はその戻り値”not banana.rotten()”の内容で置き換えられ、結果以下のコードとして実行されることになります。

if not banana.rotten()
yummy()は、引数によって戻り値が変わる関数

No.152では、”for b in bananas”の中でbを引数として関数yummyを呼び出すことで、すべてのバナナをそれぞれ引数としてyummy関数を実行するというコードで、バナナが腐っているか腐っていないかの判定をします。

ここではyummy関数は以下のように定義されているので、

yummy = (x) ->
    return not x.rotten()

関数の呼び出し時にわたされた引数”b”がxに置き換えられて実行され、つまりこの関数の戻り値は、

not b.rotten()

として呼び出し元に返されます。

よって、”if yummy b”というif文は”not b.rotten()”という戻り値を受け取って、

if not b.rotten()

となるため、このif文はbが腐ってないバナナの時はtrue(真)となり、腐っているバナナの時はfalse(偽)となります。

以上が、呼び出し時の引数に応じて返す値(戻り値)も変わる関数yummyの定義に関するご説明となります。

戻り値については以下のURLでも説明しておりますので、ぜひそちらも参考にしてみてください。

「[Q & A] 関数injured()の使い方。returnって何?戻り値?」
https://codemonkey.jp/cm_news/q-and-a-function-return/

関数の戻り値については、コードの冒険の「リターンアベニュー(メインモードNo.151から165、スキルモード14-1から14-15)」で学習可能です。是非繰り返しプレイしてみてください。


以上、ご案内いたします。また不明点などありましたらお気軽にお問い合わせください。

引き続きコードモンキーをお楽しみくださいませ。

コードモンキーサポート