public void e(int x) {
System.out.print(x + " ");
if(x < 10) {
e(x + 3);
}
System.out.print(x + " ");
}
答案是 1 4 7 10 10 7 4 1 哪位高手解释一下?
System.out.print(x + " ");
if(x < 10) {
e(x + 3);
}
System.out.print(x + " ");
}
答案是 1 4 7 10 10 7 4 1 哪位高手解释一下?
(为方便起见,将第一句打印语句叫print1(), 第二句打印语句叫print2();print()1 --------1 (x=1时的调用)1<10 ,调用e(4) (入参为4的调用)
print()1 --------4 4<10 ,调用e(7) (入参为7的调用)
print()1 --------77<10, 调用e(10) (入参为10的调用)
print()1 --------1010==10 (不再调用e(10),而是往下走程序)print()2 --------10 (e(10)的调用完全结束)print()2 --------7 (e(7)的调用完全结束)print()2 --------4 (e(4)的调用完全结束)print()2 --------1 (e(1)的调用完全结束)整个程序结束
StringBuffer tabs = new StringBuffer(); public void e(int x) {
i++;
tabs.append("\t"); System.out.println(tabs + "进入嵌套层 #" + i + " x = " + x);
if(x < 10) {
e(x + 3);
} System.out.println(tabs + "离开嵌套层 #" + i + " x = " + x); i--;
tabs.deleteCharAt(0); }