戻り値

 関数で処理した結果を、関数を呼び出す側に渡すためには戻り値を指定します。戻り値は戻すデータのデータ型を、定義するときの戻り値のデータ型として指定します。

 関数の定義内でデータを呼び出し側に戻すには次のように指定します。

戻り値指定の書式
retrun ;

 これから戻り値を指定しないパターンと指定するパターンを見てみましょう。

■ 戻り値を指定しない

 戻り値を指定しない場合は戻り値の型を「void」と指定します。

○ ファイル

 次のようにファイルを作成してください。

ファイル名 returnTest1.c

サンプルダウンロード

○ プログラム

 次のようにプログラムを入力してください。

  1. #include <stdio.h>
  2. //戻り値を返さない関数
  3. void add(int num1, int num2){
  4.  printf("合計:%d", (num1 + num2));
  5. }
  6. int main(void){
  7.  int data1;
  8.  int data2;
  9.  //データを入力
  10.  printf("数値1:");
  11.  scanf("%d", &data1);
  12.  printf("数値2:");
  13.  scanf("%d", &data2);
  14.  //関数の呼び出し
  15.  add(data1, data2);
  16.  return 0;
  17. }

○ フローチャート


○ 実行結果

数値1:20
数値2:30
合計:50

○ 解説

 4~6行目で関数を定義しています。この関数は仮引数を二つ用意しています。整数値を受け取ります。そして、戻り値は「void」と指定しているので、ありません。2つの整数を加算し、表示して呼び出し元に戻ります。

 今回はmain関数で加算したい数値を入力しています。add関数を呼び出す時に加算した二つの入力データを渡しています。今回は、計算と表示をadd関数が担当しています。

■ 戻り値を指定する

 戻り値を一つ指定することができます。戻り値を指定する場合は関数の定義で戻り値のデータ型を指定します。

○ ファイル

 次のようにファイルを作成してください。

ファイル名 returnTest2.c

サンプルダウンロード

○ プログラム

 次のようにプログラムを入力してください。

  1. #include <stdio.h>
  2. //戻り値を返す関数
  3. int add(int num1, int num2){
  4.  return num1 + num2;
  5. }
  6. int main(void){
  7.  int data1, data2, answer;
  8.  //データを入力
  9.  printf("数値1:");
  10.  scanf("%d", &data1);
  11.  printf("数値2:");
  12.  scanf("%d", &data2);
  13.  //関数の呼び出し
  14.  answer = add(data1, data2);
  15.  //処理結果を表示
  16.  printf("合計:%d¥n", answer);
  17.  return 0;
  18. }

○ フローチャート


○ 実行結果

数値1:40
数値2:60
合計:100

○ 解説

 4~6行目で関数を定義しています。この関数は仮引数を二つ用意しています。整数値を受け取ります。そして、戻り値は「int」と指定しているので整数値が返ります。2つの整数を加算し、呼び出し元にその結果を返します。

 今回はmain関数で加算したい数値を入力しています。add関数を呼び出す時に加算した二つの入力データを渡しています。今回は、計算をadd関数が、計算結果の表示をmain関数が担当しています。

前へ   次へ