Java 不返回任何内容的递归

标签 java recursion return return-value return-type

所以我在Java课本上找到了这段代码,它是一段递归代码。我真的不明白当没有返回(“return;”)时会发生什么,并且教科书上也没有解释。我尝试在互联网上搜索,但也找不到任何答案。

public static void numbers(int n) {
    if (n == 0) {
        throw new IllegalArgumentException();
    }
    if (n == 1) {
        System.out.print(n);
        return;
    }
    numbers(n - 1);
    System.out.print(", " + n);
}

最佳答案

n 为 1 时,它会打印 n (1),然后停止递归(return; 展开堆栈帧并返回到调用者,召集者)。在本例中,当 n 为 2 时。然后方法体结束(相当于 return;),因此它再次发生 (3)...

关于Java 不返回任何内容的递归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27454715/

相关文章:

php - include inside 闭包

c++ - 如何将时间返回为 DD :HH:MM:SS?

c++ - 是否返回语句复制值

java - 将字符串 ArrayList 放入 SQLite 数据库

java - 'new' 语句后的大括号有什么作用?

java - 检查整数数组以查看任意两个元素的总和是否等于另一个元素

recursion - 普通口齿不清 : Recursive "is-equal" function - results are incorrect

c++ - 这个递归函数的时间复杂度是多少?

java - 在 Ubuntu java -version 中给出 Error occurred during initialization of VM

java - Glassfish - 上传图片 - 做对了