连续赋值运算

书上有这样一道题:

1
2
3
int a=12;
a+=a-=a*a;
//求此时a的值?

我们先来分析一下运算公式a+=a-=a*a,显然这是一个连续赋值运算,计算这样子的连续赋值运算我们需要从右往左进行计算。

a+=a-=a*a包含有+=和-=两个赋值运算部分。

我们先从右往左根据赋值运算将a+=a-=a*a拆分开。

即为:1.a-=a*a

​ 2.a+=a(a-=a*a)

我们先进行a-=a*a的计算,因为a等于12所以计算过程为:

1
2
a=a-a*a;
=12-144=-132;

进行完第一步运算后a的值为-132,我们将此时a的值带入第二部分计算过程:

1
2
a=a+a;
a=-132+-132=-264

得出最后的计算结果为-264

根据上述例题,我们得出以下结论:

1.进行连续赋值运算时运算顺序为从右往左。

2.将连续赋值运算拆分为单个的赋值运算计算公式,分步进行计算。