TPY ENGINEERING VLOG

TPY ENGINEERING VLOG(C,JAVA)

*C言語* 〜25時限目〜 戻り値の仕組みについて・・・

〜目次〜

 

 

戻り値の仕組みついて

関数では、引数とちょうど逆に、

関数の呼び出し元に、関数本体から特定の情報を返す

という仕組みを作成することができます。

関数から返される情報のことを、

戻り値(return value

と呼びます。

複数指定できる引数と違い、

戻り値は1つだけ呼び出し元に情報を返すことができます。

関数の定義のスタイルを思い出してください。

戻り値を返すには、

まず戻り値の型を関数の定義の中に示します。

そして関数のブロックの中で、

returnという文を使って、

実際に値を返す処理をします。

関数定義については以下の通りです

戻り値の型 関数名(引数リスト)

{

  文;

  ・・・

 

  return 式;

}

ここではブロックの最後にreturn文を記述しているが、

この文はブロックの中ほどに記述することもできます。

ただし、関数が処理された時、

ブロックの最後にいかなくても、

return文が処理されたところで、

関数の処理が終了します。

return文の仕組みについても気をつける必要があります。

実際に戻り値を使ったコードを記述してみます。

sample56.c

f:id:YuyaTerayama:20180910214930p:plainーsample56の実行画面ー

いくらの本を売りますか?

700

いくらの本を売りますか?

1000

700円と1000円の本を売りました。

合計で1700円です。

上記のプログラムは、

関数内で計算された結果の戻り値を、

呼び出し元のsumという変数に格納するようにしています。

戻り値を利用するには、

関数の呼び出し文から、

代入演算子を使って代入します。

尚、戻り値は必ずしも呼び出し元で利用しなくても

大丈夫です。

 

戻り値のない関数

引数のない関数を定義したように、

戻り値のない関数を定義することもできます。

関数が戻り値を持たないことを示すためには、

void型を指定します。

戻り値のない関数が呼び出されて処理された場合には、

ブロックの最後の;までいきつくか、

何もつけないreturn文によって関数が終了することになっています。

単純な関数ではreturn文を記述しなくても大丈夫です。

 

合計値を求める関数

ここから今までの知識を使い、

様々な処理を行う関数を作成していきます。

まずは2つの数の合計値を求める関数を作成します。

sample57.c

f:id:YuyaTerayama:20180910220007p:plainーsample57の実行画面ー

1番目の数を入力してください。

7

2番目の数を入力してください。

10

合計は17です。

 

最大値を求める関数

もう一つ最大値を求める関数を作成します。

sample58.c

f:id:YuyaTerayama:20180910220626p:plainーsample58の実行画面ー

1番目の数を入力してください。

7

2番目の数を入力してください。

10

最大値は10です。

上記のsample57と58のように、

使いやすい関数を作成しておくことで、

色々なプログラムで関数を利用することができるのです。

 

再帰

C言語ではの関数では、

その内部で自分自身を呼び出す処理を行うことができます。

このような処理のことを、

再帰(recursion)

と呼びます。

再帰を使うことで、

複雑な処理が簡単に記述できる場合があります。

 

次回は関数形式のマクロから学んでいきます。

プログラミングの勉強に大事なのは、

実際に入力すること、

毎日少しでも触ること、

復習すること、

アウトプットすること

などで効率が上がるんだと感じている今日この頃です。

 

〜END〜