Java運算子優先順序介紹!Java基礎!
阿新 • • 發佈:2021-10-19
運算子豐富是 Java 語言的主要特點之一,它提供的運算子數量之多,在高階語言中是少見的。那麼當多個運算子出現在一個表示式中,誰先誰後呢?
這就涉及到運算子的優先級別的問題。在一個多運算子的表示式中,運算子優先順序不同會導致最後得出的結果差別甚大。
這套視訊講的都是Java基礎,簡單易懂,大家可以參考下(PS:運算子優先順序在第48節)
下表中具有最高優先順序的運算子在最上面,最低優先順序的在最下面。
使用優先順序為的小括號(),可以改變其他運算子的優先順序,即如果需要將具有較低優先順序的運算子先運算,則可以使用小括號將該運算子和操作符括起來
(x-y)*z/2
在這個表示式中先進行括號內的減法運算,再將結果與 z 相乘,最後將積除以 2 得出結果。整個表示式的順序按照從左向右執行,比較容易理解。
再來看一個複雜的表示式,如下所示。
--y || ++x && ++z;
這個表示式中包含了算術運算子和邏輯運算子。根據上表中列出的優先順序,可以確定它的執行順序如下:
- 先計算 y 的自減運算子,即 --y
- 再計算 x 的自增運算子,即 ++x
- 接著計算 z 的自增運算子,即 ++z
- 由於邏輯與比邏輯或的優先順序高,這裡將2和3 的結果進行邏輯與運算,即 ++x && ++z
- 最後將4的結果與1進行邏輯或運算,即 1 || 4。
如果沒有上述對該表示式執行順序的說明,第一眼看到它時將很難識別優先順序。對於這類問題,可以通過新增小括號使表達的順序更加清晰,而不用去查優先順序表。如下所示為改進後的表示式。
(--y)||((++x)&&(++z));
技巧:記住這麼多運算子的優先順序確實比較困難,所以大家在日常使用中儘量使用小括號來組織!
運算子優先順序大概就是這樣了,大家理解了嗎?如果覺得文字枯燥難懂的朋友可以看視訊學習理解,更容易掌握!!