【发布时间】:2014-02-16 10:58:57
【问题描述】:
我对函数中的return语句的理解是,在return之后,函数就结束了。 但这是错误的,因为我试图理解递归函数的流程:
public class Recursions {
int recursions(int i){
if(i==1){
System.out.println(i);
return 1;
}
else{
int j=(i*recursions(i-1));
System.out.println(j);
return j;
}
}
public static void main(String[] args) {
Recursions r=new Recursions();
r.recursions(4);
}
}
输出是:
1
2
6
24
但根据我的理解应该是:1 我无法理解输出,因为它表明在 return 语句后递归的情况下,指针会指向上一个调用?提前致谢
【问题讨论】:
-
return结束 当前 函数调用,但在递归函数中,同一函数有多个调用。 -
带有新鲜变量
[i ...[i ...return] ... return]