java - 使用 return 语句递归打印数字

标签 java recursion

我使用递归来打印数字,直到 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/

相关文章:

python - 使用 python 给定网络图中的某个节点,递归函数返回所有连接节点的列表

java - 回溯递归问题来解决平衡括号

java - 日本时代 "Reiwa"支持 Microsoft Excel 日期格式

java - 运行时出现 "Completed initial distribution of"错误 - NetBeans 7.4

java - 更改了类名,现在 Netbeans 8.2 无法运行任何项目

java - 在FileDialog中设置文件名

Java Shift Operator 和自动升级

java - 递增语句以跟踪递归方法中的比较

javascript - 为什么 Javascript 中的递归异步函数会导致堆栈溢出?

recursion - 方案:给定列表的列表和排列,排列