所以我在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/