x
2つのブールオブジェクトがあり、それらのいずれかをy
使用できる場合、Javaで考えると述べたように、なぜ両方のタイプが必要なのですか?x= x&&y
x=x&y
質問する
347 次
4 に答える
12
2 つの演算子の動作は異なります。
&
常に両方のオペランドを評価します&&
ショートサーキットです- 最初のオペランドが に評価されたfalse
場合、全体的な結果は常に false になり、2 番目のオペランドは評価されません
詳細については、Java 言語仕様を参照してください。
于 2012-11-26T12:49:38.037 に答える
3
このコードの出力を見てください。
int x = 0;
boolean b = false & (++x == 1); // b is false
System.out.println(x); // prints 1
x = 0;
b = false && (++x == 1); // b is false
System.out.println(x); // prints 0
&
は常に両方のオペランドを評価するため、異なります&&
が、最初のオペランドが 2 番目のオペランドである場合は、2 番目のオペランドが何であれ、false
式全体が常に評価されるため、2 番目のオペランドを調べません。false
于 2012-11-26T12:50:18.787 に答える
2
&
両方のオペランドを評価します&&
最初のオペランドが false の場合、2 番目のオペランドの評価をスキップします
于 2012-11-26T12:50:27.710 に答える
1
& はビット単位の「and」演算子、&& はブール値の「and」です。
& は常に左辺と右辺の両方を評価し、 && は式を評価するのに十分な場合にのみ左辺を評価します (たとえば、 false && true : LHS のみが評価されます。LHS が false の場合、式全体が false でなければならないためです)。
于 2012-11-26T12:53:35.000 に答える