【发布时间】:2015-07-20 01:38:09
【问题描述】:
这是一个递归函数 -
private void printVar01(int t){
if(t != 0){
logp.info("o: "+t);
printVar01(t-1);
}
}
稍作修改的相同功能 -
private void printVar02(int t){
if(t != 0){
logp.info("o: "+t);
printVar02(t--);
}
}
如果我传入一个像 4 这样的整数值,printVar01 会按预期工作,其中 t 在连续的递归调用中递减到 0,最终导致程序退出。
使用 printVar02,t 保持在值 4。
为什么?我假设这与变量赋值和/或值如何传递给函数有关。
【问题讨论】:
-
是的,我应该阅读该文档两次 :)。还有这个 - stackoverflow.com/questions/484462/…
标签: java function recursion variable-assignment