【发布时间】:2014-11-07 19:30:36
【问题描述】:
我无法理解以下递归代码:
public class recursive {
public static void main(String[] args){
helper(0) ;
}
public static void helper(int i){
int a=3;
if(i==a){
System.out.println("yes:"+i);
return;
}else{
for(;i<a;i++){
System.out.println("no:"+i);
helper(i+1);
System.out.println("end:"+i);
}
}
}
}
输出如下:
no:0
no:1
no:2
yes:3
end:2 //why this is 2?
end:1 //why this is 1?
no:2
yes:3
end:2
end:0
no:1
no:2
yes:3
end:2
end:1
no:2
yes:3
end:2
我不明白为什么第一个结尾是 2。谁能解释一下这个简单程序中的递归是如何工作的?
【问题讨论】: