ホームページ >Java >&#&チュートリアル >Java の &、|、&&、および || の違いは何ですか?
この記事では、Java の &、|、&&、および || の違いを紹介します。一定の参考値があるので、困っている友達が参考になれば幸いです。
Java では、& はビット単位 AND と呼ばれ、&& は短絡 AND と呼ばれます。両者の違いは次のとおりです:
& はビット単位の演算子です。論理演算子でもあります。& の両側は int またはブール式にすることができます。& の両側が int の場合、演算前に演算子の両側の数値を 2 進数に変換する必要があります。 (&&) による短絡は、両側でブール式である必要があります。例:
12&5 の値は何ですか?答え:12を2進数に変換すると1100(最初の4桁は省略)、5を2進数に変換すると0101、演算後の結果は0100または4になります。これは両辺が数値の場合です;
If int i = 2, j = 4; then the result of (i=2)&(j =4) is false. プロセスは次のとおりです: まず i=2 が true かどうかを判断します。もちろん true ではありませんhere (3 == 2) ですが、プログラムは次の式が true であるかどうかの判断を続けます。 j = 4、この式は true ですが、& 演算子は演算子の両側の値が true である必要があります。結果は true になるため、 (i=2 )&(j =4) は false になります。 注:
& が true になる条件は、両側の式が両方とも true であることですが、たとえ左側の式の値が false であると判断しても、プログラムは引き続き実行を継続して、右側の式の値が true か false かを判断します。
If int i = 2, j = 4; then (i=2)&&(j =4) の結果は false となり、処理は基本的に上記と同じですが、左の式の値が false の場合、プログラムは続行されません。右側の式が真であるか偽であるかを判断してください。ショートとミドル、ショートサーキットという言葉の意味はおそらくこれです
Java の '|' と '||' の違い
int i=0; if(3>2 || (i++)>1) i=i+1; System.out.println(i);
このプログラムは 2 ではなく 1 を出力します。
if の条件判定では、プログラムはまず最初の式 3>2 が真であるかどうかを判定し、その結果 3>2 が真であるため、論理に従って次の式 (i) に関係なく、 > ;1 が真かどうかは、OR 式全体が真である必要があるため、プログラムは次の式、つまり (i)>1 の判定を実行しません。したがって、ここでは i は 1 増加しません。次にプログラムは i=i 1 になるまで実行されるため、i は 1 になります。最後に1をプリントアウトします。
int i=0; if(3>2 | (i++)>1) i=i+1; System.out.println(i);
このように書くと 2 が出力されます。これは、最初の条件 3>2 が真であるかどうかに関係なく、プログラムは 2 番目の条件式の判定を実行するためです。 so i この自動インクリメントが実行され、さらに if で i=i 1 が実行されるため、最終的には i=2 になります。
|| を短絡 or、および && を短絡 and と呼ぶことに慣れている人もいます。 && と & の違いは || と | の違いと似ていますが、&& の場合、前の条件式が既に false である場合、条件式全体が false でなければならず、後続の条件式は判定されません。
推奨: 「Java ビデオ チュートリアル 」
以上がJava の &、|、&&、および || の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。