对于任何布尔表达式A和B:
A& B等于B&一个
同样地:将A | B等于B |甲
感谢您的帮助。
答案 0 :(得分:0)
如果我们谈论Java而你的意思是&&
和||
,那么这些表达式是相同的。
答案 1 :(得分:0)
是的,那些都是一样的。但是,如果您将&
更改为&&
,则它们将不再相同。
例如:
int a = 10, b = 0;
boolean test = false && (a / b == 5); // 1
boolean test2 = (a / b == 5) && false; // 2
boolean test3 = false & (a / b == 5); // 3
boolean test4 = (a / b == 5) & false; // 4
3和4都会抛出ArithmeticException
,所以它们是相同的。但是,当1执行并在结果中存储false
时,2会抛出ArithmeticException
。
答案 2 :(得分:0)
这个问题需要澄清。
如果你在谈论&& b,当a和b是方法时,它将如下:
首先评估a,然后b。
a()&& B(): 将首先调用a,如果返回false,则不会调用b()。
b()&&一个(): 如果b返回false,则不会调用a。
实际例子:
if (obj != null && obj.isXXX())
不等于
if (obj.isXXX() && obj != null)
在第一种情况下,一切都会好的。在第二个NullPointerException将被抛出。
此外,&& b不等于b&& a在这种情况下,当a或b可以改变状态时。