我知道按位运算符&、\x和^要么是位运算符,要么是逻辑运算符。取决于操作数的类型。
如果操作数是整数,则运算符是按位的。如果他们是布尔人,那么运算符是合乎逻辑的。
那么,为什么会出现逻辑运算符&、\\、以及!?我相信,在某些情况下,我们只能使用逻辑运算符,所以是这样的。
那么,谁能解释一下这种情况呢?或者比按位操作更有优势。
发布于 2013-08-17 11:51:19
操作符&和_~_这意味着只能对一方进行评估。
运算符&和_~_
--当表达式有副作用时,非常重要。
示例
x = 0;
(x++ == 0) || (x++ == 1); // x is 1
x = 0;
(x++ == 0) | (x++ == 1); // x is 2 发布于 2013-08-17 11:51:58
逻辑运算符&&、\等允许您对逻辑进行short circuit。
1==1 || complexMethod(/*param*/)complexMethod()不会执行。
1==1 | complexMethod(/*param*/)complexMethod()将执行。
短路基本上意味着条件将被评估到它是必要的,而不是超越它。
发布于 2013-08-17 11:51:35
在短路评估中的用途
例如:
请参阅&&
if(Condition1 && condition2){
}和||
if(Condition1 || condition2){
}在这些情况下
其中,只有在第一个参数不足以确定表达式的值时才执行或计算第二个参数:
https://stackoverflow.com/questions/18288465
复制相似问题