首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么逻辑运算符,当java中有位运算符时?

为什么逻辑运算符,当java中有位运算符时?
EN

Stack Overflow用户
提问于 2013-08-17 11:49:28
回答 3查看 1.6K关注 0票数 2

我知道按位运算符&、\x和^要么是位运算符,要么是逻辑运算符。取决于操作数的类型。

如果操作数是整数,则运算符是按位的。如果他们是布尔人,那么运算符是合乎逻辑的。

那么,为什么会出现逻辑运算符&、\\、以及!?我相信,在某些情况下,我们只能使用逻辑运算符,所以是这样的。

那么,谁能解释一下这种情况呢?或者比按位操作更有优势。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-08-17 11:51:19

操作符&和_~_这意味着只能对一方进行评估。

运算符&和_~_

--当表达式有副作用时,非常重要。

示例

代码语言:javascript
复制
x = 0;
(x++ == 0) || (x++ == 1); // x is 1    

x = 0;
(x++ == 0) | (x++ == 1); // x is 2    
票数 7
EN

Stack Overflow用户

发布于 2013-08-17 11:51:58

逻辑运算符&&、\等允许您对逻辑进行short circuit

代码语言:javascript
复制
1==1 || complexMethod(/*param*/)

complexMethod()不会执行。

代码语言:javascript
复制
1==1 | complexMethod(/*param*/)

complexMethod()将执行。

短路基本上意味着条件将被评估到它是必要的,而不是超越它。

票数 2
EN

Stack Overflow用户

发布于 2013-08-17 11:51:35

短路评估中的用途

例如:

请参阅&&

代码语言:javascript
复制
if(Condition1 && condition2){

}

||

代码语言:javascript
复制
 if(Condition1 || condition2){

}

在这些情况下

其中,只有在第一个参数不足以确定表达式的值时才执行或计算第二个参数:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18288465

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档