相关疑难解决方法(0)

存在非短路逻辑运算符的原因

当与使用boolean的操作数,&|成为逻辑每运营商的JLS第15.22.2.不像&&||,然而,这些不短路; 他们总是评估双方.我有一个愚蠢的问题:当我们拥有更高效的短路逻辑运算符(,)时&,为什么效率较低的非短路逻辑运算符(,|)仍然存在?我的意思是,与短路逻辑运算符相比,非短路逻辑运算符的实际用途是什么?换句话说,总是通过使用非短路逻辑运算符来评估双方的用法是什么?&&||

java logical-operators

33
推荐指数
2
解决办法
1万
查看次数

Java/Scala中的非短路逻辑(布尔)运算符有很好的用途吗?

我最近发现,爪哇(和Scala)包括非短路逻辑运算符&,|^.我之前认为这些只能作为按位运算符.虽然可能存在争论^,但我不能想到使用非短路逻辑运算符的非常好的理由 - 尽管可以肯定,我可以设想一个例子.

这些运营商有用吗?它们似乎更容易导致难以捕获的错误.

scala> def foo = {
     |   println("foo")
     |   true
     | }
foo: Boolean

scala> def bar = {
     |   println("bar")
     |   true
     | }
bar: Boolean

scala> foo || bar
foo
res5: Boolean = true

scala> foo | bar
foo
bar
res6: Boolean = true
Run Code Online (Sandbox Code Playgroud)

java scala

12
推荐指数
2
解决办法
1247
查看次数

为什么不评估&&运算符的右侧?

小疑问.为什么输出以下代码1?为什么不3呢?

int i = 0;
boolean t = true, f = false, b;
b = (t && ((i++) == 0));
b = (f && ((i+=2) > 0));
System.out.println(i);
Run Code Online (Sandbox Code Playgroud)

java

2
推荐指数
1
解决办法
107
查看次数

标签 统计

java ×3

logical-operators ×1

scala ×1