我只是想知道为什么我们通常||
在两个布尔值之间使用逻辑OR 而不是按位OR |
,尽管它们都运行良好.
我的意思是,看看以下内容:
if(true | true) // pass
if(true | false) // pass
if(false | true) // pass
if(false | false) // no pass
Run Code Online (Sandbox Code Playgroud)
if(true || true) // pass
if(true || false) // pass
if(false || true) // pass
if(false || false) // no pass
Run Code Online (Sandbox Code Playgroud)
我们可以用|
而不是||
吗?同样的事情&
和&&
.
我知道规则&&
,||
但是什么是&
和|
?请以一个例子向我解释这些.
当与使用boolean
的操作数,&
并|
成为逻辑每运营商的JLS第15.22.2.不像&&
及||
,然而,这些不短路; 他们总是评估双方.我有一个愚蠢的问题:当我们拥有更高效的短路逻辑运算符(,)时&
,为什么效率较低的非短路逻辑运算符(,|
)仍然存在?我的意思是,与短路逻辑运算符相比,非短路逻辑运算符的实际用途是什么?换句话说,总是通过使用非短路逻辑运算符来评估双方的用法是什么?&&
||