java问题,求高手详细解释一下,下面这个程序的输出结果是如何得到的?(重点分析一下这个程序的执行过程)

2025-03-06 19:08:34
推荐回答(4个)
回答1:

首先执行main方法,main方法是程序的入口,在main方法中逐条执行语句或方法,
首先执行的是count(1),因为count(int n)是static修饰的,所以可以在static修饰的main方法中直接调用,
再执行if语句块,知道判断的条件满足后结束if()语句块,
在count()方法的参数传的是1,所以1即n小于10,执行方法的递归调用n+1;打印n;依次判断。
当if条件n>10时,就会结束方法

回答2:

你把程序展开看看,我简写下:
main() {
count(1) {
if(1<10) count(2) {
if(2<10) count(3) {
if(3<10) count(4) {
...
}
print(" " + 3)
}
print(" " + 2)
}
print(" " + 1)
}
println()
}
然后程序从上到下执行

回答3:

这是递归,也就是说
static void count(int n) 《====

{ | |
if(n<10) count(n+1); =======
System.out.print(" "+n);
}
在没有执行System.out.print(" "+n);的时候又进行了count(n+1);一次接一次的执行
只要n>10了才开始执行第一次的System.out.print(" "+n);,然后一次次的返回
看看递归就OK了

回答4:

这是递归调用,调用时是count(1)count(2)……以此类推,但输出时是递推方式(即10、9、8、7……),所以是这结果。建议去看看递归。