C#のreturn文の役割と使い方!メソッドの戻り値を制御する方法
生徒
「C#で処理の結果を他のところに渡す方法ってありますか?」
先生
「はい、それにはreturn文を使います。メソッド(処理のまとまり)から値を返すための命令です。」
生徒
「なるほど…どんな場面で使うんですか?」
先生
「それでは、return文の基本的な使い方を一緒に学んでいきましょう!」
1. return文とは?
C#のreturn文は、メソッドと呼ばれる一連の処理から結果(値)を呼び出し元に返すための命令です。例えば、計算結果や判断の結果などを他の処理に伝えるために使われます。
「メソッド」とは、複数の処理を1つにまとめたもので、他の場所から呼び出すことができます。メソッドの中でreturnを使うと、その時点でメソッドの処理を終え、指定した値を返します。
2. return文の基本的な書き方
return文の基本形はとてもシンプルです。以下のように書きます:
return 値;
この「値」の部分に返したい数値や文字列などを書きます。
3. 実際のメソッドでreturn文を使ってみよう
ここでは、2つの数字を足して結果を返すメソッドを作ってみます。
int Add(int a, int b)
{
int result = a + b;
return result;
}
このAddメソッドでは、引数(ひきすう)として受け取ったaとbを足して、その合計をreturn文で返しています。
4. メソッドを呼び出して結果を使う
上で定義したAddメソッドを使うには、以下のように呼び出します。
int total = Add(5, 3);
Console.WriteLine("合計は " + total);
合計は 8
Add(5, 3)という呼び出しは、メソッドの中で5 + 3が計算され、結果の8がreturnされて、totalという変数に代入されます。
5. void型メソッドとreturn文
メソッドによっては値を返さないものもあります。その場合、voidという型を使います。
void ShowMessage()
{
Console.WriteLine("こんにちは!");
return;
}
void型のメソッドでは、return文で値を返すことはできません。ですが、メソッドを途中で強制的に終了させたい場合にはreturn;のように単独で使うことができます。
6. return文がないとどうなる?
値を返す必要があるメソッド(たとえばint型など)では、return文を書かないとエラーになります。コンピュータは「このメソッドの結果が何かわからない」と困ってしまうのです。
// 間違った例:return文がない!
int Multiply(int a, int b)
{
int result = a * b;
// returnが必要!
}
このようなコードは、コンパイル(C#プログラムを実行形式に変換)するときにエラーになります。
7. return文は1つだけじゃない!
実は、メソッドの中に複数のreturn文を書くこともできます。たとえば条件によって違う値を返したいときに使います。
string GetGrade(int score)
{
if (score >= 80)
{
return "優秀";
}
else if (score >= 60)
{
return "合格";
}
else
{
return "不合格";
}
}
この例では、点数に応じて異なる文字列を返しています。最初に出会ったreturn文で、メソッドの処理は終わるので、それ以降の処理は実行されません。
8. return文の注意点
- returnは必ず最後に実行されるとは限らない:処理の途中でreturnすると、それ以降の処理はスキップされます。
- void型メソッドに値を返そうとするとエラーになる:返すべきでないメソッドにreturn値を書くとエラーになります。
- returnの型とメソッドの型は一致させる:たとえば
int型のメソッドでは、intの値を返す必要があります。