、
A 複合代入演算子 であり、計算および割り当てを行うオペレータ同時に。 Javaのバイナリ算術演算子のすべて(つまり、二つのオペランド上で動作するものである)同等の複合代入演算子を持っています。
演算子 | 説明 |
+ = | の追加と割り当て |
- = | 減算と代入 |
* = | 乗算と割り当て< / = |
部門と割り当て、 | %= |
余りと割り当て | <! - 1 - > |
a + = 10;
は
a = a + 10に相当します。
また、文
z * = 2;
は、z = z * 2と等価である。
混乱を避けるために、複合代入式を単独で使用し、他の式と組み合わせて使用しないでください。次のステートメントを考えてみましょう:
int a = 2;
int b = 3;
<! a * = b + 1;
は
A
7
または
8
に設定されていますか?
つまり、
A = A * B + 1に相当する3番目のステートメントです。 //結果は
または
a = a *(b + 1)となります。 //これは結果として8を返す
一見すると、答えは
7
であると予想される。なぜなら乗算は加算よりも優先順位が高いからである。しかし、割り当てはすべての優先順位の中で最も低く、ここでの乗算は割り当ての一部として実行されます。その結果、乗算の前に加算が実行され、その答えは
8
になります。 (Gotcha!)