Java中的布尔语
我是一名初学者,开始学习java语言。我在书中遇到了一个关于布尔人的问题。我不知道如何找到问题的价值,我想知道是否有人能给我一个代码应该是什么样子的示例。非常感谢您的帮助
书中的问题:
假设b的值为假,x的值为0。以下每个表达式的值是多少
a)b && x == 0
b)b || x == 0
c)!b && x == 0
d)!b || x == 0
e)b && x != 0
f)b || x != 0
g)!b && x != 0
h)!b || x != 0
我只是不知道该如何解决这个问题,救命! 谢谢
# 1 楼答案
从Equality, Relational, and Conditional Operators
&&
是有条件的,这意味着只有当左操作数是true
时,才计算右操作数。 在你的例子中,b为false,这意味着计算结束,因为无论false && <anything>
如何,都不可能为true||
是条件or,这意味着只有在第一个操作数为false
时才计算右操作数在你的例子中,b是假的,所以我们需要计算
x==0
来得到结果# 2 楼答案
以下是你如何解决这个问题:
&&
和||
双方都需要boolean
!
反转a的值boolean
!=
和==
将int
对转换为boolean
true
还是false
让我们以你的前两个练习为例:
b && x == 0
你知道
b
是false
,所以AND
的结果马上就知道了:它是false
——不需要做任何其他事情b || x == 0
b
是false
,所以OR
的结果现在还不知道李>x == 0
(值为true
)b || true
(该值为true
,因为OR
与true
的匹配总是true
)李># 3 楼答案
由于您正试图学习Java,启动eclipse并执行以下操作:
然后你就有了答案(至少是第一个答案)
# 4 楼答案
这本书应该解释每个操作的作用。您可以通过以下方式测试结果:
输出应该给出正确或错误的答案
# 5 楼答案
如果你看一下Java中的Operator Precedence,
!=
和==
比&&
和||
(逻辑and和OR)具有更高的优先级。所以只是
这就是
因为
b
是false
,所以最终的结果是false
# 6 楼答案
查找表达式值的一种简单方法是将表达式打印到屏幕上,在您的情况下:
必须将其放入Java类中并运行,例如: