短絡評価を理解するには、まず論理演算子とは何かを理解する必要があります。
論理演算子
演算子を理解する前に、JAVA の論理演算子の結果がブール型の値であることを知っておく必要があります。
論理積「&&」
式 1 && 式 2
論理 AND は、演算子の両側の式が true の場合にのみ結果が true になることを意味します。
式1 | 式2 | 結果 |
本物 | 本物 | 本物 |
本物 | 偽物 | 偽物 |
偽物 | 本物 | 偽物 |
偽物 | 偽物 | 偽物 |
論理和「||」
式 1 || 式 2
論理 AND は、両方の式が false の場合にのみ結果が false になることを意味します。
式1 | 式2 | 結果 |
---|---|---|
偽物 | 偽物 | 偽物 |
偽物 | 本物 | 本物 |
本物 | 偽物 | 本物 |
本物 | 本物 | 本物 |
論理的NOT「!」
!式1
And、or の 3 つの論理式のうち、not だけが単項演算子です。
式 1 が true の場合、結果は false になります。
式 1 が false の場合、結果は true になります。
式1 | 結果 |
---|---|
本物 | 偽物 |
偽物 | 本物 |
短絡評価
論理演算子を理解したら、短絡評価について学びましょう
まず、次のコードの出力について考えてみましょう。
答え:
両方の質問の結果は次のとおりです。
なぜそうなるのでしょうか?
- && の場合、左側の式の値が false の場合、式の結果も false になる必要があり、右側の式を計算する必要はありません。
- || の場合、左側の式の値が true の場合、式の結果も true になる必要があり、右側の式を計算する必要はありません。
とにかく短絡評価を行わずにコードを書き たい場合。
JAVA では、ビット演算子「& |」は、その両側の式がブール値を返す場合、論理演算子としても機能します。
& と | も、式の結果がブール値の場合は論理演算を表しますが、&& || と比較すると、短絡評価はサポートされていません。