運算子優先權

當表示式包含多個運算子時,可能會以不同的方式讀取它。例如,可以通過兩種方式讀取數學表示式 1 + 2 x 3

  1. 新增 12 並將結果乘以 3。這給出了答案 9。如果我們新增括號,這看起來像 ( 1 + 2 ) x 3
  2. 1 新增到乘以 23 的結果中。這給出了答案 7。如果我們新增括號,這看起來像 1 + ( 2 x 3 )

在數學中,慣例是以第二種方式閱讀表示式。一般規則是在加法和減法之前進行乘法和除法。當使用更高階的數學符號時,要麼意思是不言而喻(對於訓練有素的數學家!),要麼新增括號以消除歧義。在任何一種情況下,符號傳達意義的有效性取決於數學家的智慧和共享知識。

Java 基於所使用的運算子的優先順序,對如何讀取表示式有相同的明確規則。

通常,每個運算子都被賦予優先值; 見下表。

例如:

  1 + 2 * 3

+的優先順序低於*的優先順序,因此表示式的結果為 7,而不是 9。

1 Lambda 表示式優先順序很複雜,因為它也可以在強制轉換後發生,或者作為條件三元運算子的第三部分。