Java 的 & 也可以當邏輯運算器
2978 단어 java
&
可以做逐位元 (bit-wise) 的運算, 不過您可能不知道的是, 如果 &
兩邊都是 boolean
예를 들어 Boolean
的運算元, 那 &
就會變成 邏輯運算器 , 예:jshell> int a = 10
a ==> 10
jshell> a == 11 & a++ == 11
$2 ==> false
這個時候它的功能和
&&
近似, 但是有一點 關鍵的差異 , 예 &
兩邊的運算元都一定會執行, 然後才根據執行結果作邏輯運算.因此, 上述的例子中, 雖然左邊的運算元 a == 11
fasle
, 已經可以確認邏輯運算的結果, 但是右邊的運算元 a++ == 11
還是會運算, 如果檢查 a
的值, 就會發現變 11 了:jshell> a
a ==> 11
사용
&&
運算器, 它會走捷徑, 只要左邊運算元的計算結果可以決定整個邏輯運算的結果, 就不會計算右邊的運算元, 例如:jshell> int b = 10
b ==> 10
jshell> b == 11 && b++ == 11
$5 ==> false
jshell> b
b ==> 10
你會看到同樣的運算元, 但是改用
&&
b == 11
會得到 false
, 對 &&
運算來說已經能夠確認結果一定是 false
, b++ == 11
根本就不會執行, 最後 b
就仍然保留原值.小結
本文的說明也同樣適用於
|
運算器 運算器, av java 教學 都 沒有 提到 提到 這些 位元 位元 運算器 也 可以 可以 當成 邏輯 運算器 使用 使用, 雖然 並 不 不 建議 用 用 用 用, 不過 若 若 是 看到 別人 的 程式 程式 出現 這 種 用法 用法 就 不 會 覺得 覺得 覺得 奇怪 了.. 種 種
Reference
이 문제에 관하여(Java 的 & 也可以當邏輯運算器), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/codemee/java-de-ye-ke-yi-dang-luo-ji-yun-suan-qi-3kh3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)