在Java中,&&
和||
是短路的。因此,如果没有必要,他们不会评估他们的第二个操作数(例如false && a
,true || b
)。
&=
运营商怎么样?它也是短路的吗?
答案 0 :(得分:2)
不,&=
不是布尔运算符,因此它不会使任何东西短路,它是一个按位赋值运算符。
它实质上意味着使用第一和第二个操作数的按位&
分配第一个操作数。
快速演示
int i = 01;
int ii = 10;
System.out.println(i &= ii); // assigns i with i & ii and sends i to print stream
i = 01;
ii = 11;
System.out.println(i &= ii);
<强>输出强>
0
1
答案 1 :(得分:1)
不,不是。
有一段时间有一个关于为什么不存在&&=
运算符的线程。如果它有意义的话,那可能是一个短路操作员。