【发布时间】:2018-05-27 06:33:48
【问题描述】:
public class Test {
public static void main(String[] args) {
print(4);
}
static void print(int n){
if (n <= 1)
System.out.print("A");
else {
print(n-1);
print(n-2);
}
}
}
这段代码的输出结果是AAAAA。但我想知道怎么做?我什么时候考虑(n-1),什么时候考虑(n-2)?
【问题讨论】:
-
请正确缩进您的代码。
-
寻求帮助时,最好以可读、一致的方式缩进和格式化代码。 (当不寻求帮助时也是一个好主意。)(编辑:Stefan 和我这次已经为你做了。)
-
到目前为止,回答此类问题的最佳方法是使用 IDE 中内置的调试器。在调试模式下运行代码,逐个执行语句,查看变量的值等。请注意,这是一个 递归 函数(不是嵌套函数),因此请注意'将有多个
n来跟踪(每个调用都有其自己的n)。 -
@Stultuske 抱歉,我两周前才开始编码。很高兴听到某人的解释。
-
@nerv21 如果您是在两周前才开始的,那么您很可能只是匆匆忙忙。你知道你写的那些行是做什么的吗?你知道什么是原语和对象,它们有什么不同吗?您了解什么是静态,以及为什么需要它来让您的代码(按原样)运行吗?我的建议是,查看您使用的方法的文档,看看它们实际做了什么。然后,在你的头脑中检查你的代码,并检查你的代码执行的顺序。
标签: java if-statement methods static void