トップページ > コンテンツ > プログラミング入門 > 言語共通系 > return文について

return文はそのメソッドに値が入るだけで、そこの変数には影響を与えない。
int methodA() {
   int a;
   ... // なにかの処理
   return  a*10; // aにa*10が代入されるわけではない
                 // 単にa*10を呼び出し元に返すだけ
}
int methodB()
   int a;
   a = methodA() + 10; // methodA()で帰ってきた結果に10を足す
}

methodA()とmethodB()に同じ名前の変数aがありますが、これらは
名前が同じだけであり、実体は別ものになる。あくまで「methodA()
のa」であり,「methodB()のa」。

return文で返される戻値はメソッドの処理の結果と読み替えられる。

class Test {
  static int Square(int a) {
  return a*a;
   }
   public static void main(String[] args) {
       System.out.println(Square(2));
       System.out.println(Square(4));
   }
}

の場合には結果が平方の結果が表示される。
return文では戻り値を2つ以上返すことはできず、そのようなことをしたい場合には
戻したい値を配列に詰め込み、配列をreturnする。もしくはなんらかのインスタンスに詰め込み、
そのインスタンスをreturnする。
関連:配列をreturnするときの注意

話は変わるが、変数を返さないvoid型の関数であってもreturn文を使うことはできる。
関数の処理を途中でやめたいような時には結構便利。
void func() {
  if(何らかの条件) {
      return ;
  }
}

最終更新:2015年12月28日 22:34