我在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,因此返回上一级

没有更多的代码,执行结束

10-07 22:03