メソッドを定義するときに使うreturnには2つの役割があります。
1つ目が戻り値を返す役割。もう1つがメソッドの処理を終わらせる役割。
この記事ではreturnが持つ役割について解説していきます。
この記事の内容
- 機能1:戻り値を返すためのreturn
- 機能2:メソッドの処理を終了させるためのreturn
- まとめ
機能1:戻り値を返すためのreturn
returnの使い方では戻り値を返す時に使うというのが多くの人が真っ先に思い浮かべる役割だと思います。
以下のコードをもとに戻り値を返す役割についてみていきます。
public class Main {
// int型の引数を2つ受け取って足した結果を返してくれるメソッド
public int sum(int number1, int number2) {
int result = number1 + number2;
// int型の戻り値を指定する
return result;
}
}
sumメソッドではint型の引数を2つ受け取って、その引数を足した結果を返してくれるメソッドになっています。
メソッドの戻り値の型がint型になっているため、戻り値はint型である必要があります。
この戻り値はreturnの後に書くことで指定することができます。
returnにはこのように戻り値を返す役割があります。
機能2:メソッドの処理を終了させるためのreturn
returnはメソッドの処理を終了させる役割があります。
先ほどのコードのreturnの後に1行コードを追加したらどうなるでしょうか?
public class Main {
// int型の引数を2つ受け取って足した結果を返してくれるメソッド
public int sum(int number1, int number2) {
int result = number1 + number2;
// int型の戻り値を指定する
return result;
// 絶対に実行されないコードのため、コンパイルエラーになる
System.out.println("実行されないコード");
}
}
「System.out.println(“実行されないコード”);」は絶対に実行されないため、コンパイルエラーになります。これはreturnでメソッド内の処理が終了されてしまうためです。
そのため、if文内の処理でない限り、returnの後に何かしらのコードを書くことはできません。
if文内の処理というのは以下のような場合を指しています。
public class Main {
// int型の引数を2つ受け取って足した結果を返してくれるメソッド
public int sum(int number1, int number2) {
int result = number1 + number2;
if (result <= 10) {
System.out.println("10以下の数字です");
return result;
}
System.out.println("10以上の数字です");
return result;
}
}
上記のような場合、メソッド内の処理の途中にreturnが入っていますが、コンパイルエラーにはなりません。
理由としてはif文の処理は必ずしも実行されないです。つまり、returnが必ずしも実行されるとは限らないということです。
また、このコードの場合、if文の外側にもreturnを書いて戻り値を返すコードを書く必要があります。これもif文内の処理が必ず実行されるとは限らないことが原因です。if文の条件を満たさなかった場合、何も戻り値を返さないためです。
このようにreturnは戻り値を返す役割と同時にメソッドの処理を終了させる役割を持っています。
まとめ
この記事ではreturnの役割について解説してきました。
returnの役割は以下の2つになります。
- 戻り値を返す役割
- メソッドの処理を終了させる役割
最後まで読んでいただきありがとうございました!