参考https://www.cnblogs.com/sqtds/archive/2012/12/20/2826156.html
public static String tests(int i){
if(i>5){
return "xxx";
}else{
System.out.println(i);
tests(++i);
}
return "yyy";
}
当i<=5
时,结果总是yyy
执行tests(4)
时,当i==6
时,会执行return "xxx";
但这并不会结束整个方法,只会结束运行当前的方法,方法会向上(外)继续执行。
当在方法调用递归时,
A
方法调用A(1)
方法,再调用A(2)
方法,代码执行顺序是依次执行A(2)-->A(1)-->A
,从里的方法依次执行。如果递归方法中,有需要返回参数,就需要在各个递归层次方法之间传递返回值
public static String tests(int i){
String msg = "";
if(i>5){
return "xxx";
}else{
System.out.println(i);
msg = tests(++i);
}
return msg;
}