*C言語* 〜25時限目〜 戻り値の仕組みについて・・・
〜目次〜
戻り値の仕組みついて
関数では、引数とちょうど逆に、
関数の呼び出し元に、関数本体から特定の情報を返す
という仕組みを作成することができます。
関数から返される情報のことを、
戻り値(return value)
と呼びます。
複数指定できる引数と違い、
戻り値は1つだけ呼び出し元に情報を返すことができます。
関数の定義のスタイルを思い出してください。
戻り値を返すには、
まず戻り値の型を関数の定義の中に示します。
そして関数のブロックの中で、
returnという文を使って、
実際に値を返す処理をします。
関数定義については以下の通りです
戻り値の型 関数名(引数リスト)
{
文;
・・・
return 式;
}
ここではブロックの最後にreturn文を記述しているが、
この文はブロックの中ほどに記述することもできます。
ただし、関数が処理された時、
ブロックの最後にいかなくても、
return文が処理されたところで、
関数の処理が終了します。
return文の仕組みについても気をつける必要があります。
実際に戻り値を使ったコードを記述してみます。
sample56.c
ーsample56の実行画面ー
いくらの本を売りますか?
700
いくらの本を売りますか?
1000
700円と1000円の本を売りました。
合計で1700円です。
上記のプログラムは、
関数内で計算された結果の戻り値を、
呼び出し元のsumという変数に格納するようにしています。
戻り値を利用するには、
関数の呼び出し文から、
代入演算子を使って代入します。
尚、戻り値は必ずしも呼び出し元で利用しなくても
大丈夫です。
戻り値のない関数
引数のない関数を定義したように、
戻り値のない関数を定義することもできます。
関数が戻り値を持たないことを示すためには、
void型を指定します。
戻り値のない関数が呼び出されて処理された場合には、
ブロックの最後の;までいきつくか、
何もつけないreturn文によって関数が終了することになっています。
単純な関数ではreturn文を記述しなくても大丈夫です。
合計値を求める関数
ここから今までの知識を使い、
様々な処理を行う関数を作成していきます。
まずは2つの数の合計値を求める関数を作成します。
sample57.c
ーsample57の実行画面ー
1番目の数を入力してください。
7
2番目の数を入力してください。
10
合計は17です。
最大値を求める関数
もう一つ最大値を求める関数を作成します。
sample58.c
ーsample58の実行画面ー
1番目の数を入力してください。
7
2番目の数を入力してください。
10
最大値は10です。
上記のsample57と58のように、
使いやすい関数を作成しておくことで、
色々なプログラムで関数を利用することができるのです。
再帰
C言語ではの関数では、
その内部で自分自身を呼び出す処理を行うことができます。
このような処理のことを、
再帰(recursion)
と呼びます。
再帰を使うことで、
複雑な処理が簡単に記述できる場合があります。
次回は関数形式のマクロから学んでいきます。
プログラミングの勉強に大事なのは、
実際に入力すること、
毎日少しでも触ること、
復習すること、
アウトプットすること
などで効率が上がるんだと感じている今日この頃です。
〜END〜