递归的理解

代码:
、、、

public class Test {
public static void main(String[] args) throws Exception {
    System.out.println(get15(20));
    
}
public static int get15(int num){
    if (num==15){
        return num;
    }else {
        num--;
        
        get15(num);
    }
        return num;
	}
}

、、、
输出结果:19

====
、、、

public class Test {
public static void main(String[] args) throws Exception {
    System.out.println(get15(20));
}
public static int get15(int num){
    if (num==15){
        return num;
    }else {
        num--;
        //差别点:仅仅多出一个num的赋值
        num=get15(num);
    }
        return num;
    }
}

、、、
输出结果:15

====

分析:
对于第一段代码,分析如下:
、、、

public class Test {
public static void main(String[] args) throws Exception {
    System.out.println(get15(20));   
}
public static int get15(int num){
//num=20
    if (num==15){
        return num;
    }else {
    //num=20
        num--;
     //num=19   
        get15(num);//程序递归,直到"num"=15(注意这个引号,"num"与num已经不是一个值了,传参理解。此时其实『get15(num)』的值是返回值15)
    }
        return num;//此时输出的是num,就是19
	}
}
	、、、

另外注意传参是对象的时候,便可以直接传出,因为传参传的是地址。(String又是个例外,原因百度)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值