在一個表達式中可能包含多個有不同運算符連接起來的、具有不同數據類型的數據對象;由於表達式有多種運算,不同的運算順序可能得出不同結果甚至出現錯誤運算錯誤,因為當表達式中含多種運算時,必須按一定順序進行結合,才能保證運算的合理性和結果的正確性、唯一性。
優先級從上到下依次遞減,最上面具有最高的優先級,逗號操作符具有最低的優先級。表達式的結合次序取決於表達式中各種運算符的優先級。優先級高的運算符先結合,優先級低的運算符后結合,同一行中的運算符的優先級相同。
下面是運算符的優先級表格:
優先級 | 運算符 | 說明 | 結合性 |
---|---|---|---|
1 | [] 、. 、() |
字段訪問、數組索引、函數調用和表達式分組 | 從左向右 |
2 | ++ -- -~!delete new typeof void | 一元運算符、返回數據類型、對象創建、未定 義的值 |
從右向左 |
3 | *、/、% | 相乘、相除、求余數 | 從左向右 |
4 | +、- | 相加、相減、字符串串聯 | 從左向右 |
5 | <<、>>、>>> | 左位移、右位移、無符號右移 | 從左向右 |
6 | <、<=、>、>=、instanceof | 小於、小於或等於、大於、大於或等於、是否 為特定類的實例 |
從左向右 |
7 | ==、!=、===、!== | 相等、不相等、全等,不全等 | 從左向右 |
8 | & | 按位“與” | 從左向右 |
9 | ^ | 按位“異或” | 從左向右 |
10 | | | 按位“或” | 從左向右 |
11 | && | 短路與(邏輯“與”) | 從左向右 |
12 | || | 短路或(邏輯“或”) | 從左向右 |
13 | ?: | 條件運算符 | 從右向左 |
14 | =、+=、-=、*=、/=、%=、&=、|=、^=、<、<=、>、>=、>>= | 混合賦值運算符 | 從右向左 |
15 | , | 多個計算 | 按優先級計算,然后從右向左 |
如果實在不清楚的的話可以將運算符里面的運算條件用()進行分組和數學上的用法是一樣的便可以進行運算!