我在Java中具有多次调用自身的函数(即递归),根据条件也有一个return命令。
public class ReturnTest {
public static void main(String[] args){
returnTest(1);
}
public static void returnTest(int i){
System.out.println(" i => " + i);
if(i >= 2) {
System.out.println(" calling return ");
return;
}
System.out.println(" calling RT1, i => " + i);
returnTest(++i);
System.out.println(" calling RT2, i => " +i);
returnTest(++i);
}
}
在这种情况下,return命令如何工作?
我原本希望return命令来自最初的returnTest()调用,但是发生的是,它移至下一个return命令
即返回时(当我> = 2时),它将调用以下内容
System.out.println(" calling RT2, i => " +i);
returnTest(++i);
我想了解收益如何运作(在这种情况下尤其是),请。帮助澄清。
谢谢!
最佳答案
希望以下详细信息对您有所帮助:
您使用1
调用方法>=2
为假,所以继续
您可以使用2
调用该方法(因为预递增)>=2
为true,因此返回上一级
您可以使用3
调用该方法(因为预递增)>=2
为true,因此返回上一级
没有更多的代码,执行结束