第8章 C言語の関数 ~ 関数の作り方とモジュール分け ~
次に、戻り値についての説明です。戻り値については、以前に演習問題1で習いました。 関数 strlen が、文字列の長さを整数型の戻り値にして、返してくれたのを思い出してみてください。
ここでは、関数 strlen のように、関数 goukeiPrint から戻り値を返してみましょう。 せっかく、合計を計算する関数なのですから、戻り値も合計を返す用にしてみましょう。
リスト21を次のように変更してみてください。
— リスト21````–
#include <stdio.h> /** * 関数プロトタイプ宣言 */ int goukeiPrint(int tanka, int num); void main() { int tanka; int num; int sum=0; tanka = 2000; num = 4; sum = sum +goukeiPrint(tanka, num); tanka = 1500; num = 5; sum = sum + goukeiPrint(tanka, num); tanka = 3000; num = 2; sum += goukeiPrint(tanka, num); printf("総計は、%dです。\n", sum); } /** * 単価と個数から、合計を計算して表示する関数 * 計算した値は、戻り値にして返す */ int goukeiPrint(int tanka, int num) { int sum; sum = tanka * num; printf("合計は、%dです。\n", sum); return sum; }
関数に return を記述すると、たとえ処理がまだ残っていたとしても、関数は終了します。 そして、関数の呼び出し元(ここでは main )に戻ります。
また、return のすぐ後に記述した変数が(注22)、その関数の戻り値になります。ここでは、関数 goukeiPrint は合計した値を返しています。 そして、main 関数の中では、その値を累積していって、最後に総計として表示していますね。
関数の作り方の説明は、ここまでです。
関数は、本来とても便利なものです。しかし、例題が小さいので、 あまりピンと来ないかもしれません。関数の便利さをわかってもらうために、 リスト21を次のように変更してみてください。今まで表示していた合計に、 5%の消費税を上乗せするように変更します。
— リスト21`````–
#include <stdio.h> /** * 関数プロトタイプ宣言 */ int goukeiPrint(int tanka, int num); void main() { int tanka; int num; int sum=0; tanka = 2000; num = 4; sum = sum + goukeiPrint(tanka, num); tanka = 1500; num = 5; sum = sum + goukeiPrint(tanka, num); tanka = 3000; num = 2; sum += goukeiPrint(tanka, num); printf("総計は、%d円です。\n", sum); } /** * 単価と個数から、合計を計算して表示する関数 * ・計算には消費税5%分を含める */ int goukeiPrint(int tanka, int num) { int sum; sum = tanka * num * 105 / 100; printf("合計は、%d円です。\n", sum); return sum; }
変更があったのは、赤字部分だけでしたね。
これが、初めのプログラムのように関数にしていない場合は、 3カ所も同じように変更する必要があります。
たったの3カ所なら直すのも、さほど労力ではないかもしれません。 しかし、みなさんが実際にプロジェクトに入るようになると、 プログラムは何千行、何万行にもなってきます。 このときに、関数にするべき処理を、関数にしておかないと、たいへんなことになってしまいます。
それに、研修の後半になれば、関数を必要とするプログラムを作ってもらうことになります。
< 前のページへ 次のページへ >-
IS 559680 / ISO27001
認証範囲 本社、芝大門オフィス情報セキュリティ基本方針 -
個人情報保護方針
個人情報の取扱いについて
保有個人データ又は
第三者提供記録に関する
事項の周知について
特定個人情報の取扱いについて -
FS 671851 / ISO9001
認証範囲 本社、芝大門オフィス品質方針