Java 在下面的函数中,为什么在显示Hello(6,5,….1)之后,空格在计数器中显示增量?
在下面的函数中,为什么在显示Hello(6,5,….1)之后,空格在计数器中显示增量Java 在下面的函数中,为什么在显示Hello(6,5,….1)之后,空格在计数器中显示增量?,java,recursion,Java,Recursion,在下面的函数中,为什么在显示Hello(6,5,….1)之后,空格在计数器中显示增量 private void myMethod(int counter) { if (counter == 0) { System.out.println(""); } else { System.out.println("Hello" + counter); myMethod(--counter); Syste
private void myMethod(int counter)
{
if (counter == 0)
{
System.out.println("");
}
else
{
System.out.println("Hello" + counter);
myMethod(--counter);
System.out.println("" + counter);
}
}
将6传递给方法时的程序输出:
Hello6
Hello5
Hello4
Hello3
Hello2
Hello1
0
1
2
3
4
5
如果递归完全完成,则首先调用第二个print,这意味着它向后计数,因为最后调用的方法首先完成 如果这就是你的意思。(实际上不是代码,而是用于图表) 使用myMethod(3)时:
因为每个语句都有三条语句,并且它们是按从上到下的顺序执行的,所以首先执行第一条print语句,然后执行递归,这会临时跳过第二条print语句,直到到达base语句0为止,然后它会向后执行,为每个语句执行第二条print语句。(如果这是您要问的)您所说的“那么空格在计数器中显示增量”到底是什么意思?这对我来说很不清楚。如果您能显示一个简短但完整的程序、实际输出和预期输出,这会有所帮助。当计数器=5输出Hello5 Hello4 Hello3 Hello2 Hello1 0 1 2 3 4否时,这并不能解释您的意思。你需要尽可能地努力使自己变得清晰-看,OP不是很清楚,但我认为他的意思是在他的输出中有一个空行。如果问题是空行-你希望
System.out.println(“”
怎么办?
mM(3)->|prints: "Hello3"
|mM(2)-------------->|prints: "Hello2"
|prints:.... |mM(1)-------------->|prints: "Hello1"
|prints.... |mM(0)----------->|prints: ""
|prints....