可能重复:
& vs && and | vs ||
&
和&&
之间的区别是什么?
我为&
和&&
获得相同的输出。
&&
:
if (true && true){
System.out.println("------if------");
} else {
System.out.println("------else------");
}
&
:
if (true & true){
System.out.println("------if------");
} else {
System.out.println("------else------");
}
------if------
------if------
我们可以在代码中交替使用&
和&&
运算符吗?
答案 0 :(得分:3)
答案 1 :(得分:2)
&
- 按位AND &&
- 逻辑AND 在这两种情况下都是正确的,因为在逻辑的情况下,原因很明显,而在按位 AND的情况下, - true被解释为1,所以{{1 alsays返回1 & 1
,结果为逻辑1
答案 2 :(得分:2)
&
将强制评估左右操作数,而&&
是短路操作符,并且在明显的情况下不检查右操作数。
// this will evaluate both method calls even if the result
// of checkSomething() is false
boolean result = checkSomething() & checkSomethingExpensive()
// this will skip evaluation of checkSomethingExpensive() if the result of
// checkSomething() is false
boolean result = checkSomething() && checkSomethingExpensive()
答案 3 :(得分:0)
答案 4 :(得分:0)
经验法则:使用&&在处理布尔,条件,ifs等时。大多数时候。使用&在极少数情况下,您需要执行位操作。
答案 5 :(得分:0)
答案 6 :(得分:0)
那是因为评估了以下内容:
我会用英语语义写出来让你理解。
对于输出1:逻辑AND &&
如果为true且true为TRUE。
对于ouptut 2:按位AND &
1
)x = 1 & 1
)位是AND'ed 答案 7 :(得分:-1)
&安培;&安培;是一个比较而&是一个操作!