読み込み中...

C言語のreturnを使いこなすための12の具体的ステップ

C言語のreturnを使いこなすためのガイドブック C言語
この記事は約8分で読めます。

【サイト内のコードはご自由に個人利用・商用利用いただけます】

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

本記事のサンプルコードを活用して機能追加、目的を達成できるように作ってありますので、是非ご活用ください。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を満たす現役のプログラマチームによって監修されています。

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

C言語は初めてプログラミングを学ぶ人々にとって、その基本的な構造と直感的なシンタックスが魅力となっています。

そして、その基礎的な要素の一つに’return’というキーワードが存在します。

本記事では、この’return’の使い方を12の具体的なステップで解説します。

この記事を通じて、初心者でもreturnの活用方法をマスターできるようになることを願っています。

●C言語とは

C言語は、1972年にベル研究所で開発されたプログラミング言語で、その汎用性と効率の良さから広く利用されています。

C言語は、オペレーティングシステムや組み込みシステムの開発に広く用いられ、その後の多くのプログラミング言語の基盤となっています。

●returnとは

returnは、C言語における重要なキーワードで、関数から値を返す際や、関数の実行を終了させる際に使用されます。

そして、return文を使うことで、関数が計算した結果を他の関数やメイン関数に伝えることができます。

○returnの基本的な使い方

returnの基本的な使い方は簡単です。

関数内で計算や処理を行った後、その結果をreturn文を使って返します。

次のように書くことで、関数の結果を返すことができます。

int add(int a, int b) {
  int result = a + b;
  return result;
}

このコードでは、addという名前の関数を定義しています。

この関数は二つの整数aとbを引数に取り、その和を計算してreturnしています。

●returnの具体的な使い方

では、returnを使った具体的な使い方を見てみましょう。

○サンプルコード1:単純なreturnの使用例

#include<stdio.h>

int main() {
  int result = add(5, 3);
  printf("%d\n", result); // "8"が出力される
  return 0;
}

int add(int a, int b) {
  int sum = a + b;
  return sum;
}

このコードでは、add関数を使って5と3を加算し、その結果をmain関数内で出力しています。

add関数は、引数aとbの和を求め、その結果をreturnしています。

その値をmain関数が受け取り、結果を出力しています。

○サンプルコード2:関数から値を返す

#include<stdio.h>

double getAverage(int a, int b) {
  double average = (a + b) / 2.0;
  return average;
}

int main() {
  double result = getAverage(5, 3);
  printf("%f\n", result); // "4.000000"が出力される
  return 0;
}

このコードでは、getAverageという関数を定義し、二つの整数の平均を求めてreturnしています。

そして、その結果をmain関数が受け取り、結果を出力しています。

○サンプルコード3:多重return文の利用

#include<stdio.h>

int compare(int a, int b) {
  if (a > b) {
    return 1;
  } else if (a < b) {
    return -1;
  } else {
    return 0;
  }
}

int main() {
  int result = compare(5, 3);
  printf("%d\n", result); // "1"が出力される
  return 0;
}

このコードでは、compareという関数を使用して、2つの数値の比較を行い、その結果を返しています。

そして、その結果をmain関数が受け取り、結果を出力しています。

具体的には、もしaがbより大きければ1を、小さければ-1を、等しければ0を返しています。

このように、return文は一つの関数内で複数回使用することが可能です。

●returnの応用例

returnは基本的な使い方だけでなく、より複雑なコードにおいてもその効果を発揮します。

それでは、returnの応用例をいくつか紹介します。

○サンプルコード4:エラーハンドリング

#include<stdio.h>

int divide(int a, int b) {
  if (b == 0) {
    printf("Error: Division by zero is not allowed.\n");
    return -1;
  } else {
    return a / b;
  }
}

int main() {
  int result = divide(5, 0);
  if (result != -1) {
    printf("%d\n", result);
  }
  return 0;
}

このコードでは、divideという関数を定義しています。

この関数は二つの整数aとbを引数に取り、aをbで割った結果をreturnします。

ただし、0で割るというエラーが発生しないように、bが0の場合はエラーメッセージを出力して-1を返すようにしています。

○サンプルコード5:条件分岐との組み合わせ

#include<stdio.h>

int isEven(int num) {
  if (num % 2 == 0) {
    return 1;
  } else {
    return 0;
  }
}

int main() {
  int result = isEven(5);
  if (result == 1) {
    printf("The number is even.\n");
  } else {
    printf("The number is odd.\n");
  }
  return 0;
}

このコードでは、isEvenという関数を定義しています。

この関数は整数を引数に取り、その整数が偶数であれば1を、奇数であれば0を返します。

そして、main関数ではその結果に基づいて、入力された数値が偶数であるか奇数であるかを出力します。

○サンプルコード6:再帰関数での利用

#include<stdio.h>

int factorial(int n) {
  if (n == 0) {
    return 1;
  } else {
    return n * factorial(n - 1);
  }
}

int main() {
  int result = factorial(5);
  printf("%d\n", result); // "120"が出力される
  return 0;
}

このコードでは、factorialという関数を使用して階乗を計算しています。

この関数は、再帰的に自分自身を呼び出すことで、入力された整数の階乗を計算しています。

このように、return文は再帰関数においても非常に重要な役割を果たします。

●returnの注意点と対処法

returnを使用する上で知っておくべきいくつかの注意点と、それらに対する対処法を見てみましょう。

○return文を忘れた時の対処法

関数が値を返すべきだがreturn文を書くのを忘れてしまった場合、その関数は未定義の値を返すことになります。

これはバグの原因となるため、関数が値を返すべき場合は、必ずreturn文を記述するようにしましょう。

○return文の位置に注意

関数内でreturn文を使う位置には注意が必要です。

一度return文が実行されると、それ以降のコードは実行されません。

そのため、return文は最後に配置するか、条件分岐内で適切に配置することが重要です。

●returnを活用したカスタマイズ方法

returnは、関数の基本的な挙動を制御するための強力なツールです。

ここでは、returnを使ったいくつかのカスタマイズ方法を紹介します。

○サンプルコード7:関数の連鎖

#include<stdio.h>

int add(int a, int b) {
  return a + b;
}

int multiply(int a, int b) {
  return a * b;
}

int main() {
  int sum = add(5, 3);
  int result = multiply(sum, 2);
  printf("%d\n", result); // "16"が出力される
  return 0;
}

このコードでは、二つの関数addとmultiplyを定義しています。

それぞれの関数は二つの整数を引数に取り、その和や積を計算してreturnします。

そして、main関数ではこれらの関数を連続して呼び出し、結果を出力します。

○サンプルコード8:多重return文の活用

#include<stdio.h>

int getMax(int a, int b, int c) {
  if (a >= b && a >= c) {
    return a;
  } else if (b >= a && b >= c) {
    return b;
  } else {
    return c;
  }
}

int main() {
  int result = getMax(5, 3, 7);
  printf("%d\n", result); // "7"が出力される
  return 0;
}

このコードでは、getMaxという関数を使用して、3つの数値の最大値を求めています。

各数値が他の数値よりも大きいかどうかを確認し、最大の数値をreturnしています。

このように、複数のreturn文を適切に配置することで、関数の挙動を効率的に制御することが可能です。

まとめ

C言語のreturnは、関数の出力を制御し、プログラムの流れを整理するための強力なツールです。

この記事では、returnの基本的な使い方から、より高度な活用方法までを、具体的なサンプルコードとともに紹介しました。

これらの知識を活用し、より効果的で効率的なC言語プログラミングを行いましょう。