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