Java 递归问题

这里写图片描述

参考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;
    }

猜你喜欢

转载自blog.csdn.net/peng_hong_fu/article/details/80135366