gpt4 book ai didi

java - 为什么我们通常使用||结束 |?有什么区别?

转载 作者:太空狗 更新时间:2023-10-29 22:58:45 25 4
gpt4 key购买 nike

我只是想知道为什么我们通常在两个 boolean 值之间使用逻辑或 || 而不是按位或 |,尽管它们都运行良好。

我的意思是,请看以下内容:

if(true  | true)  // pass
if(true | false) // pass
if(false | true) // pass
if(false | false) // no pass
if(true  || true)  // pass
if(true || false) // pass
if(false || true) // pass
if(false || false) // no pass

我们可以使用 | 代替 || 吗? &&& 也是一样。

最佳答案

如果您使用||&& 形式,而不是这些的|& 形式运算符,Java 不会费心单独计算右侧操作数。

这取决于您是否要短路求值 - 大多数时间您都想这样做。

说明短路好处的一个好方法是考虑以下示例。

Boolean b = true;
if(b || foo.timeConsumingCall())
{
//we entered without calling timeConsumingCall()
}

正如 Jeremy 和 Peter 提到的,短路的另一个好处是空引用检查:

if(string != null && string.isEmpty())
{
//we check for string being null before calling isEmpty()
}

more info

关于java - 为什么我们通常使用||结束 |?有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/96667/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com