我使用递归来打印数字,直到 2(数字),并且传递零(0)作为输入并递归调用它,直到数字达到 2。 我已经尝试过这段代码,它显示了正确的输出。
class Test{
public static void main(String[] args) {
rec(0);
}
private static void rec(int num){
if(num<=2){
rec(++num);
}
System.out.println(num);
}
}
但我想用以下方式做到这一点。
class Test{
public static void main(String[] args) {
rec(0);
}
private static void rec(int num){
if(num==2){
return;
}
rec(++num);
System.out.println(num);
}
}
预期输出:
2,1,0
但它显示:
2,1
为什么会发生这种情况?
最佳答案
++num
递增 num
,这(如此处)使代码更难理解。
尝试调用 rec(num + 1);
。
您可能会发现您的终止条件需要修改为:
if (num > 2)
终止条件通常是“不执行任何操作”的情况,这里就是这种情况。
关于java - 使用 return 语句递归打印数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56365016/