第17回 – メソッドを作ろう 3 – 返り値


前回は引数のあるメソッドを作りました。
今回は、返り値のあるメソッドを作ってみたいと思います。

返り値って?

返り値は、メソッドの中でされた計算結果を、呼び出した側に渡してあげるための機能です。

例えば前回の例では、メソッドは呼び出されただけで(画面に図形を表示するという仕事はしましたが)、メインのプログラムには特に影響を与えていませんでした。
…ちょっとわかりにくいですね、具体的な話をしましょう。

値を返すって?

squareという名前のメソッドを作って、1つ引数を渡すと、その引数を二乗した数を返してくれるというメソッドを作るとします。
今までの方法では、この「計算結果を返してくれる」という部分が作れませんでした。
どうしてかというと、メソッド名の前に void と書いていたからです。あのvoidというキーワードが実は、「このメソッドは値を返しません」という意味なのでした。
では値を返したい場合にはどうしたら良いでしょうか?
実は、その返したい値の型をvoidの代わりに書けば良いのです。

int square(int n){
  int sq = n * n;
  return sq;
}

これが、引数を二乗して返してくれるというメソッドの実装です。
引数に取った n という数を自分自身と掛けた数をsqという名前の変数に格納しています。
そして、 returnというキーワードの横にその変数名をスペースをあけてから書いています。
このreturnキーワードで指定した値が、返り値として呼び出し元に返ります。
ではその返り値をどうやって使うのか、という話ですが、このようにして使います。

void setup(){
  size(200,200);
  
  int n = square(5);
  println(n);
}

int square(int n){
  int sq = n * n;
  return sq;
}

メソッドを = の右辺に置いて、メソッド自体を変数に代入するかのように書きます。
nにはsquare(5)が代入されているように見えますが、実際にはこのメソッドの計算結果(返り値)が代入されます。
実際にご自分のprocessingに貼り付けて実行してみてください。
下の部分に5✕5の計算結果、つまり25が表示されるはずです。

まとめ

返り値は一見地味なように思えますが、プログラミングをする上ではかなり重要な機能です。
この後classを学ぶと、その重要性がさらによくわかるようになると思います。
では