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

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


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


ユーザー様からのご質問

コードの冒険チャレンジNo.154のinjured()の使い方を教えてください

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

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

ゴリラの攻撃を受けながらバナナの獲得を目指すチャレンジNo.154では、モンタの体力に気を配りながらすべてのバナナを集めなければなりません。

関数injured()は、モンタの体力が十分に残っているかをチェックするための関数として、4-5行目で以下のように定義されています。

injured = () ->
    return health() < 70

これは、injured()は戻り値”health() < 70"を返す関数という定義になります。

つまり、”if injured()”というコードを書けば、injured()の戻り値”health() < 70"によって、そこは"if health() < 70"というコードに置き換えられるため、このif文はモンタの体力(health)が70未満の時にtrueになります。そして、70以上の時はif文はfalseになるということです。

よって、関数injured()を以下のように使うことで、モンタの体力が70未満になったら体力回復のためにhealthZoneに行くというコードになります。

healthy = () ->
    return health() == 100

injured = () ->
    return health() < 70

#injured()がtrueだったら、healthZoneに行って体力を回復する
for b in bananas
    if injured()
        goto healthZone
        until healthy()
            wait()
    goto b

このコードの実行例はこちら(スマホ不可)

以上が関数injured()の使い方の説明となります。ここで使った”return”というコードは関数の戻り値という考え方で、さまざまなところで応用可能なプログラミングにおける非常に重要な考え方です。

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

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

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

コードモンキーサポート