JAVA中递归参数传递问题

2025-04-25 11:37:51
推荐回答(1个)
回答1:

public class Practise {
static int k = 0;

static void aa(int a) {
if (a == 1) {
System.out.println("[a == 1]参数a为:"+a);
return;
} else {
System.out.println("[a != 1]参数a为:"+a);
aa(a - 1);
System.out.println("[a - 1]参数a为:"+a);
System.out.println("递归a:"+a);
if (k == 2) {
System.out.println("[k == 2]参数a为:"+a+",变量k:"+k);
return;
}
k++;
System.out.println("[k++]参数a为:"+a+",变量k:"+k);
aa(a - 1);
}
}

public static void main(String[] args) {
// TODO Auto-generated method stub
aa(5);
}
}


运行结果:




红色标注部分为楼主代码中对a的打印【System.out.println(a);】

通过其余打印语句可以清楚,为什么会是23245的打印结果了