Java中運算子優先順序
阿新 • • 發佈:2019-01-06
程式設計中運算子的優先順序是一個很值得注意的事情。雖然用括號基本上就可以避免所以優先順序的問題,但如果對於運算子優先順序掌握不是很清楚的話,有的時候看別人巧妙的程式碼會難以理解,或有的時候會錯誤地處理了優先順序,因此沒有加括號導致出現錯誤。
這裡用一張表來表示Java優先順序,這張表應該在很多blog種也能見到,因為其確實清楚簡潔。
優先順序 | 運算子 | 結合性 |
---|---|---|
1 | () [] . | 從左到右 |
2 | ! +(正號) -(負號) ~(取補) ++(自增) - -(自減) | 從右向左 |
3 | * / % | 從左到右 |
4 | +(加號) -(減號) | 從左到右 |
5 | << >> >>> | 從左到右 |
6 | < <= >= > instanceof | 從左到右 |
7 | ==(等於) != | 從左到右 |
8 | & | 從左到右 |
9 | ^ | 從左到右 |
10 | | | 從左到右 |
11 | && | 從左到右 |
12 | || | 從左到右 |
13 | ?: | 從右向左 |
14 | = += -= *= /= %= &= |= ^= ~= <<= >>= >>>= | 從右向左 |
數字越小,優先順序越高。
總結一下,優先順序次序如下:
括號>單元操作符>算術運算子>移位操作符>關係運算符>位運算子>邏輯運算子>三元操作符>賦值運算子