可能重复:
& vs && and | vs ||
What are the cases in which it is better to use unconditional AND (& instead of &&)
在检查简单的AND条件时,我可以使用'&'和'&&'。它与'&'一起工作正常以及'&&'。这两者之间有什么区别吗?
示例代码:
if(sample!=null & sample.size())
if(sample!=null && sample.size()
答案 0 :(得分:2)
第一个版本(&)总是评估两个参数。 仅当第一个参数被评估为TRUE时,第二个版本(&&)才会计算第二个参数。
同样适用于OR运算符:有|和||。 仅当第一个参数被评估为FALSE时,(||)才会计算第二个参数。
答案 1 :(得分:1)
第一个表达式检查双方,第二个表达式仅在第一个为真时才检查第二方。
答案 2 :(得分:1)
它只用一个单数&来评估左侧和右侧,即使最后一侧是假的。
请参阅下面的问题,了解更详细的信息......
答案 3 :(得分:1)
'&' for bit wise 'AND'
'&&' is for Logical 'AND'
答案 4 :(得分:1)
if(sample!=null & sample.size())
如果第一个条件不满足,那么它也将检查下一个条件。
if(sample!=null && sample.size())
如果第一个条件不满足,那么not
将检查下一个条件。
答案 5 :(得分:1)
&&是一个短路运算符,意味着如果示例中的sample为null,它将停止并且不会计算第二个条件。
另一方面,&不是短路,即使样本为空,也会评估sample.size()。当然在这种情况下它会抛出NullPointerException
,但在短路情况下它不会抛出。{/ p>