作業運算子( - 和)
這些運算子的左手運算元必須是非 final 變數或陣列的元素。右側運算元必須與左側運算元相容。這意味著型別必須相同,或者右運算元型別必須通過裝箱,拆箱或加寬的組合轉換為左運算元型別。 (有關完整的詳細資訊,請參閱 JLS 5.2 。)
操作和分配運算子的精確含義由 JLS 15.26.2 指定為:
形式
E1 op= E2
的複合賦值表示式相當於E1 = (T) ((E1) op (E2))
,其中T
是E1
的型別,除了E1
僅被評估一次。
請注意,在最終賦值之前存在隱式型別轉換。
1. =
簡單賦值運算子:將右手運算元的值賦給左手運算元。
示例:
c = a + b
將a + b
的值新增到c
的值並將其分配給c
2. +=
add and assign
運算子:將右手運算元的值新增到左手運算元的值,並將結果賦給左手運算元。如果左手運算元的型別為 String
,那麼這是一個連線並分配運算子。
示例:
c += a
與c = c + a
大致相同
3. -=
subtract and assign
運算子:從左手運算元的值中減去右運算元的值,並將結果賦值給左手運算元。
示例:
c -= a
與c = c - a
大致相同
4. *=
multiply and assign
運算子:將右側運算元的值乘以左側運算元的值,並將結果賦值給左側運算元。。
示例:
c *= a
與c = c * a
大致相同
5. /=
除法和賦值運算子:將右側運算元的值除以左側運算元的值,並將結果賦值給左側運算元。
示例:
c /*= a
與c = c / a
大致相同
6. %=
模數和賦值運算子:通過左手運算元的值計算右手運算元的值的模數,並將結果賦值給左手運算元。
示例:
c %*= a
與c = c % a
大致相同
7. <<=
左移和分配運算子。
示例:
c <<= 2
與c = c << 2
大致相同
8. >>=
算術右移和分配運算子。
示例:
c >>= 2
與c = c >> 2
大致相同
9. >>>=
邏輯右移和分配運算子。
示例:
c >>>= 2
與c = c >>> 2
大致相同
10. &=
按位和分配運算子。
示例:
c &= 2
與c = c & 2
大致相同
11. |=
按位或分配運算子。
示例:
c |= 2
與c = c | 2
大致相同
12. ^=
按位獨佔或分配運算子。
示例:
c ^= 2
與c = c ^ 2
大致相同