JAVA中递归参数传递问题

package Practise;
public class Practise {
static int k=0;
static void aa(int a){
if (a==1){
return;
}else{
aa(a-1);
System.out.println(a);
if (k==2){
return;
}
k++;
aa(a-1);
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
aa(5);
}
}
输出来的值是下面的,看不懂,请 各位大侠指导:
2
3
2
4
5

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的打印结果了

温馨提示:答案为网友推荐,仅供参考
相似回答