首頁 > Java > java教程 > Java 的 `&` 和 `&&` 運算子之間的主要差異是什麼?

Java 的 `&` 和 `&&` 運算子之間的主要差異是什麼?

Linda Hamilton
發布: 2024-12-01 04:35:14
原創
154 人瀏覽過

What's the Key Difference Between Java's `&` and `&&` Operators?

理解Java 中'&' 和'&&' 之間的區別

在Java 中,'&' 運算子傳統上與整數的位元運算。然而,最近發現該運算子也可以執行布林運算,這使其與「&&」運算子產生了問題。

雖然「&」和「&&」都驗證布林操作數的真實性,但它們的不同之處在於他們的評價邏輯。 '&&' 執行惰性求值,這表示它僅在左側 (LHS) 運算元為 true 時才求值右側 (RHS) 運算元。這確保瞭如果 LHS 操作數為 false,則不會計算 RHS 操作數,從而可能避免不必要的計算並防止異常。

相反,「&」會不斷計算兩個運算元。如果對於某些 LHS 操作數值沒有明確定義 RHS 操作數,這可能會導致異常。考慮以下範例:

if ((x != 0) & (1/x > 1)) {
    // ...
}
登入後複製

如果 'x' 為 0,則此表達式在嘗試計算 '1/x' 時將引發異常。為了防止這種情況,請使用 '&&' 代替:

if ((x != 0) && (1/x > 1)) {
    // ...
}
登入後複製

這裡,如果 'x' 不為 0,它只會繼續計算 '1/x',從而避免異常。

此外,「|」、「|>」布林運算子的對應部分的行為類似。 '|>'如果第一個操作數的計算結果為 true,則停止計算,因為結果總是 true。

理解 '&' 和 '&&' 之間的微妙區別對於編寫高效且健壯的 Java 程式碼至關重要,可以避免由以下原因引起的運行時錯誤過早評估。

以上是Java 的 `&` 和 `&&` 運算子之間的主要差異是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板