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;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值