我有这样的疑问, 1)下面的程序运行时显示的任务:if/else语句显示
class Q1
{
public static void main(String[] args)
{
r(3);
}
public static void r(int x)
{
if (x == 1)
{
System.out.println("hello");
r(10);
}
else
if (x == 9)
System.out.println("bye");
else
{
System.out.println("good");
r(x-1);
System.out.println("bad");
}
}
}
,并在我的逻辑,其结果必然是
good
good
hello
good
bye
但答案是
good
good
hello
good
bye
bad
bad
bad
为什么这些坏的底线出现? 当最后一个r(9)被分配给x时,程序遇到if(x == 9)语句,所以它应该停止,这就是我的想法。
请帮我弄清楚这里的过程和逻辑! 我很困惑...
谢谢。现在,我明白了。 – learnerJ