0

可能重复:
& vs && 和 | 与 ||
在哪些情况下最好使用无条件 AND(& 而不是 &&)

在检查简单的 AND 条件时,我可以使用 '&' 和 '&&'。它适用于 '&' 和 '&&'。这两者有什么区别吗。

示例代码:

if(sample!=null & sample.size())
if(sample!=null && sample.size()
4

6 回答 6

2

第一个版本 (&) 总是评估两个参数。第二个版本 (&&) 仅在第一个参数被评估为 TRUE 时才评估第二个参数。

同样适用于 OR 运算符:有 | 和||。(||) 仅当第一个参数已被评估为 FALSE 时才评估第二个参数。

于 2012-08-20T09:14:25.337 回答
1

第一个表达式检查双方,第二个表达式仅在第一个为真时检查第二个。

于 2012-08-20T09:14:01.807 回答
1

它只用一个单数 & 来评估左边和右边,即使最后一面是假的。

有关详细信息,请参阅下面的问题...

什么时候不应该使用 Java 快捷操作符 &

于 2012-08-20T09:14:13.957 回答
1
'&' for bit wise 'AND'
'&&' is for Logical 'AND'
于 2012-08-20T09:14:28.630 回答
1
if(sample!=null & sample.size())

在这里,如果第一个条件不满足,那么它也会检查下一个条件。

if(sample!=null && sample.size())

在这里,如果第一个条件不满足,那么它也会not检查下一个条件。

于 2012-08-20T09:15:12.140 回答
1

&& 是一个短路运算符,这意味着如果示例在您的示例中为空,它将停止并且不评估第二个条件。

另一方面, & 不是短路的,即使 sample 为空,也会评估 sample.size() 。当然在这种情况下它会抛出NullPointerException,但在短路情况下它不会。

于 2012-08-20T09:15:16.617 回答