| 與 || 都是「邏輯或」運算子,差別在於如果 || 左邊的運算式可以決定結果,就不會運行右邊的運算式,比如:
輸出
使用 | 的運算結果:true
運算後 i 的內容:4
運算後 k 的內容:6
使用 || 的運算結果:true
運算後 i 的內容:3
運算後 k 的內容:6
在第 11 行中,由於|| 運算子左邊的邏輯判斷為 true,因此不需要看右邊的運算式就可以得知結果為 true,所以 i++ == j 這個運算式不會被執行,i 不會遞增。
同理於「邏輯且」,& 與 && 都是「邏輯且」運算子,在 && 左邊的運算式即可決定運算結果時,就不會運行右邊的運算式,比如:
輸出
使用 | 的運算結果:false
運算後 i 的內容:4
運算後 j 的內容:5
運算後 k 的內容:6
使用 || 的運算結果:false
運算後 i 的內容:4
運算後 j 的內容:5
運算後 k 的內容:5
在第 13 行中,由於&& 運算子左邊的邏輯判斷為 false,因此不需要看右邊的運算式就可以得知結果為 false,所以 k++ == l 這個運算式不會被執行,k 不會遞增。
|| 及 && 又稱為條件運算子(Conditional Operator),其取捷徑、不執行右邊運算式的行為又稱為短路(Short Circuit),所以又分別被稱為 Short-circuit OR 及 Short-circuit AND。
以上是關於邏輯運算子 - 或、且的一些練習,如果有任何建議,請讓我知道,謝謝 🙌 🙌