public class QR {
public static void main(String[] args) {
mm(3);
}
public static void mm(int n) {
if(n>2) {
mm(n-1);
}
System.out.println("n="+n);
}
}
输出结果是:
n=2
n=3
public class QR {
public static void main(String[] args) {
mm(3);
}
public static void mm(int n) {
if(n>2) {
mm(n-1);
}
System.out.println("n="+n);
}
}
输出结果是:
n=2
n=3
1.主函数调用mm(3)
2.mm(3)进入if判断,并符合条件,调用mm(2)--->记住此处未执行完成,还差一个sysn
3.mm(2)进入if判断,不符合条件,输出n=2
4.第2步执行完成,输出n=3
我的理解:递归先一层层往后递进,直到递进结束,然后回溯。
所以你的代码执行过程:
4 回答1.2k 阅读✓ 已解决
4 回答1.2k 阅读✓ 已解决
1 回答2.5k 阅读✓ 已解决
2 回答705 阅读✓ 已解决
2 回答1.7k 阅读
2 回答1.6k 阅读
2 回答1.3k 阅读
你按照代码想一遍就出了。
因为对于大于2的参数,函数是干了两件事的:
一、递归调用
二、输出参数
所以参数3执行递归函数参数变成2,所以先输出2。然后参数3的第二步执行,输出3.