可以解释一下为什么我想对一些数字求和时为什么会有差异?
int a = 4;
int b = 6;
int e = 10;
int wynik1 = a += b += e; //so it is 20. 
System.out.println(wynik1);
int wynik2 = a + b + e; 
System.out.println(wynik2); // so it is 46.... 
我应该只使用Always +=代替+吗?我很困惑,因为当我学习循环(例如,循环)时,我正在使用for (int p = 20; p<40; p=p+ 5)它并且运行良好。
为什么是46?
在大多数情况下(例外)a += b等同的a = a + b
所以
int wynik1 = a += b += e; //so it is 20. 
与...相同
int wynik1 = (a = a + (b = b + e)); // so it is 20.
意思就是
b = b + e将执行b6 + 10 = 16b是16 a将具有4 + 16 = 20结果被分配wynik1。因此,在该行之后(a = a + (b = b + e))(或在您的情况下a += b += e;),我们的变量将包含以下值:
a = 20b = 16 e = 10(e因为e=..我们的代码中没有,所以没有变化)这应该解释为什么
int wynik2 = a + b + e; //20 + 16 + 10
是46。
| 归档时间: | 
 | 
| 查看次数: | 553 次 | 
| 最近记录: |