可能重复:
logical operators in java
What's the difference between | and || in Java?
正如标题所说,我需要知道&
运算符和&&
运算符之间的区别。
任何人都可以用简单的语言帮助我。
答案 0 :(得分:4)
如果第一个结果为FALSE,则&&
不会评估第二个结果。 &
确实如此。
答案 1 :(得分:4)
&安培;&安培;仅在第一个操作为真时才计算第二个表达式。 &安培;计算两个表达式(即使第一个表达式为false,并且在评估第二个表达式时没有意义)。因此&&比&快一点点在逻辑运算中。因此&&也被称为短路和。
&安培;除了逻辑运算符之外,还可以用作按位运算符。所以你可以做2个数字的“比特和”,例如
int result = 1 & 3; // will evaluate to 1
&安培;&安培;不能用作位操作符。
对于条件IF运算符,请使用&&amp ;.它比&。
快一点点答案 2 :(得分:4)
实际上有三个“和”运营商:
a && b
,其中a和b为布尔值:评估a。如果为true,则评估b。如果为true,则结果为真。否则,结果是错误的。 (即如果a
不成立,则不评估b。)a & b
,a和b为布尔值:评估两者,做逻辑和(即只有两者都为真时才为真)。a & b
,其中a和b都是整数类型(int,long,short,char,byte):计算a和b,并按位进行AND。第二个可以被视为第三个的特殊类型,如果将boolean
视为一位整数类型; - )
作为if
语句的顶级条件,您可以使用前两个语句,但第一个语句最有用。 (即,在很少的情况下,你真的需要第二个,第一个会做错事,但反过来更常见。在大多数情况下,第一个只是更快一点。)