按值传递的意义

按值传递的意义,使得函数对形参的赋值,不对外界造成副作用

因此,给形参赋值通常是没有意义的。(参考《编程导论(Java)·2.4.3 final变量和不变类》-final变量 )

然而,既然对形参的赋值,不对外界造成副作用,需要的时候当然可以为形参赋值。

例如求[a,b]间自然数的和,我们通常会编写如下代码

    public static int sum0(int a,int b){
        int total=0;
        for(int i=a;i<=b;i++){
            total+= i;
        }
        return total;
    }
你是否考虑一下,不要变量i?其实,i真的是多余的。

既然按值传递保护了我们,我们就应该直接对a进行++。

    public static int sum(int a,int b){
        int total=0;
        for(;a<=b;a++){
            total+= a;
        }
        return total;
    }

学习按值传递,要知道它的表现、意义。你习惯第二种代码吗?

如果你的代码不是第二种,你还没有真正理解按值传递的意义。(其实,我本人就自然地使用i。大多数情况是我们没有注意这个问题,也没有人提到或告诉我这个问题)<

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值