当我为n=5运行这段代码时,我得到的输出是"5 3 1 1 3 5“,我得到了5 3 1部分,但在那之后,n=-1,但是当我使用调试器运行代码时,当n=-1时,它会转到numbers(n-2);i.e System.out.prt(n+ "");之后的行,即使该语句包含在if块中。
这一切为什么要发生?
public void numbers(int n)
{
if(n>0)
{
System.out.print(n+" ");
numbers(n-2);
System.out.print(n+" ");
}
}TLDR :当n=-1 System.out.prt(n+ "");时,即使它在if块中,它只在n>0时运行。
任何帮助都将不胜感激。提前感谢!
发布于 2016-01-11 16:06:05
5 first system.out then number(5-2)
|
----> 3 first system.out then number(5-2)
|
----->1 first system.out then number(5-2)
(smaller than 0) , returning
|
1 second system.out
|
3<---- second system.out
|
5<--------- second system.outhttps://stackoverflow.com/questions/34725881
复制相似问题