從高到低排序(同行優先級相同):
. [] () 左→右
++ -- ! ~ 左→右
* / % 左→右
+ - 左→右
<< >> >>> 左→右
< > <= >= 左→右
== != 左→右
& 左→右
^ 左→右
&& 左→右
|| 左→右
?: 右→左
= += -= *= /= %= &= ^= |= <<= >>= >>>= 右→左
例:a = b + c * d / (c ^ d) 先算括號內 c^d,再算 c*d,再除,最後加 b 賦值給 a。
| 運算符 | 功能 | 範例 |
|---|---|---|
| - | 正負號翻轉 | -i |
| ~ | 按位取反 | ~i |
| ++ | 加 1 | i++ / ++i |
| -- | 減 1 | i-- / --i |
前綴 vs 後綴:++i 先增後用,i++ 先用後增。
| 類別 | 運算符 |
|---|---|
| 算術 | + - * / % |
| 位運算 | & | ^ << >> >>> |
| 複合賦值 | += -= *= /= %= &= |= ^= <<= >>= >>>= |
關鍵差異:>> 符號位填充(算術右移),>>>> 零填充(邏輯右移)。
整數除法向零取整;除零或模零拋出異常;溢出回繞、下溢歸零。
< > <= >= == !=! && ||(短路求值)條件 ? 真值 : 假值 例:(a>b)?a:b 取較大值Infinity、NaN;比較時勿假設全序關係+ 連接字符串,非字符串操作數自動 toString();+= 同理