代碼片段中出現 &&(),疑惑:&& 是邏輯與,為什麼後面跟括號?
括號改變運算優先級,將括號內表達式作為整體參與邏輯與運算。
1 + 2 * 3 = 7 // 先乘後加
(1 + 2) * 3 = 9 // 括號優先,改變順序
a && b + c // 等價 a && (b + c) ,+ 優先級高於 &&
a && (b + c) // 顯式分組,先算 b+c 再與 a 邏輯與
int x = 5, y = 3, z = 0;
if (x > 0 && (y - z) > 2) { ... }
// 步驟:
// 1. (y - z) = 3
// 2. 3 > 2 → true
// 3. x > 0 → true
// 4. true && true → true,進入 if
! > * / % > + - > < <= > >= > == != > & > ^ > | > && > || > ?: > = += ...&& 具備**短路特性**:左操作數為 false 時,右操作數**不再求值**;括號內表達式作為右操作數整體,同樣受短路控制。結論:&&() 不是特殊語法,而是 && 後跟一個**括號表達式**,括號用於**顯式分組、改變優先級、構造複合條件**。