Java连续赋值操作的细节


对于一个连等型的表达式,其在不同位置相同的变量,
会因为变量赋值顺序的不同,影响变量的值是否赋值
成功,代码如下:
 
public class Test {
 
    public static void main(String[] args) {
 
        int a=0,b=0;
        b+=a*=b+=(a=1)/(b=1);
        System.out.println(b);
        
        a=0;b=0;
        b+=++a+(++a+b);
        System.out.println(b);
        
    }
 
}
这段代码的结果是:
0
3
虽然=表达式的运算顺序是从右向左,但是变量在运算前
已经被从左至右读入CPU,所以,
    对于第一部分代码,第一个a的值为0,第二个a值为
1;运算结果为0;
    对于第二部分,第一个a是1,第二个a是2;第一个a
对第二个a产生了影响,所以结果是3;
总结出下来就是,对于同一个变量,左边变量变化对右边
变量产生影响,而右边变量的变化对左边变量不产生影响。
--------------------- 
原文:https://blog.csdn.net/c13207174353/article/details/52896150?utm_source=copy 
版权声明:本文为博主原创文章,转载请附上博文链接!

 

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值