java - 为什么这个递归代码打印“1 2 3 4 5”?
问题描述
我是 Java 递归的新手,在教科书中遇到了这段代码。运行代码后,它会打印“1 2 3 4 5”,我想知道为什么它不打印“5 4 3 2 1”?
public class Test {
public static void main(String[] args) {
xMethod(5);
}
public static void xMethod(int n) {
if (n > 0) {
xMethod(n - 1);
System.out.print(n + " ");
}
}
}
解决方案
这是由于 println() 的顺序和对 xMethod() 的递归调用
如果您翻转两行,它将在递归调用之前打印给您 5 4 3 2 1
public static void main(String[] args) {
xMethod(5);
}
public static void xMethod(int n) {
if (n > 0) {
System.out.print(n + " ");
xMethod(n - 1);
}
}
推荐阅读
- r - 如何获得 100 个样本,每个样本长度为 1000 个样本比例为 AATAA 的 5-mers
- ionic-framework - 当应用程序在离子中关闭时如何调用函数
- c# - 服务接口良好实践
- python - 在情节中更改悬停文本值
- php - 忽略 cakephp 3.6.x 上的 SMTP 异常错误
- rust - How to set the proper lifetime of `self` when calling tokio::spawn?
- sql - Oracle SQL - REGEXP_LIKE 在 CHECK 约束中没有按预期工作
- python-3.x - ModuleNotFoundError: No module named 'sklearn.externals.joblib'
- workday-api - Workday Studio 中使用 AM/PM 的日期时间格式
- python - 如何将 QTableWidget 编辑状态下的单元格大小增加超过行大小?