编写一个非常简单的程序来测试递归。程序会打印一些东西,直到数字不大于0为止。
public class TestIt {
public static void print(int f){
while(f>0){
System.out.println("Not today");
f--;
print(f);
}
}
}
上面的代码是从主程序调用的,如下所示。
public static void main(String[] args) {
TestIt.print(2);
}
也许我最终失去了理智,但程序打印的次数超出了我的预期。如果我向该方法发送3,那么程序将打印7次。有什么想法可以解释原因吗?
发布于 2018-12-12 09:07:07
因为你做错了
while(f>0){
System.out.println("Not today");
f--;
print(f);
}
您将在循环中调用方法print
f
因为它是递归的,所以它将被递归地调用f-1次
所以它将成为死亡的时代。
删除while
循环,并将按您所需的方式工作
https://stackoverflow.com/questions/53734632
复制相似问题