赋值运算符链理解

Dee*_*ari 0 java

有人可以解释下面代码的输出

int a=10;
a = a -= a+= a -= a += a;

output : 10 
Run Code Online (Sandbox Code Playgroud)

我无法得到它如何给10?

小智 9

a += a 手段a = a + a.

同样,a -= a意味着a = a - a.

我不确定哪种方式适合启动,但如果我使用上面的方法从右侧转换给定的代码,

   a += a                     >     a = a + a;
   a -= a += a                >     a = a - (a + a);
   a+= a -= a += a            >     a = a + (a - (a + a ));
   a -= a+= a -= a += a       >     a = a - (a + (a - (a + a)));
   a = a -= a+= a -= a += a   >     a = a - a - a + a + a;
Run Code Online (Sandbox Code Playgroud)

在哪里-a -a + a + a取消,结果a = a,这是10.