Java論理演算子の&と&&の関係と違い

まず、&(論理AND)&&(短絡AND)はどちらもJava言語の論理演算子です。&と&&の最終的な操作結果の観点からは、両者に違いはありません。
実際、論理演算子&と&&はどちらも「論理AND」を意味しますが、それらの違いは何ですか?これら2つの演算子の操作規則に関しては、演算子の両側の式の結果がtrueの場合にのみ、「論理AND」の後の結果がtrueになり、それ以外の場合はすべてfalseになります。論理演算子「&」を使用すると、両側の式が判断されます。一方、演算子「&&」は、一方の式の結果に基づいて、もう一方の式を実行するかどうかを決定します。最初の式がfalseの場合2番目の式が判定されない場合は、2番目の式の実行を直接シールドし、結果を直接出力してコンピュータの判定回数を節約することに相当します。通常、論理式の左端から推測できる式全体の値を「短絡」と呼び、論理演算子の両側で常に実行される式を「非短絡」と呼びます。「&&」は短絡演算子、「&」は非短絡演算子であることがわかり、「&&」の実行効率が「&」よりも高いことがわかります。
例えば:

int x=1;
int y=2;
boolean b1 = (x>y)&(x>y++);//执行结束后y的值为3
//boolean b2 = (x>y)&&(x>y++);//执行结束后y的值仍为2
System.out.println(y);

上記のコンテンツは少し個人的な学習体験です。ナレッジポイントに誤りがある場合はメッセージを残してください。違反コンテンツのリマインダーがある場合は、すぐに削除してください。

おすすめ

転載: blog.csdn.net/pf6668/article/details/107305862