为了账号安全,请及时绑定邮箱和手机立即绑定

Java中的布尔逻辑表达式

Java中的布尔逻辑表达式

忽然笑 2023-09-27 14:41:38
有好心人可以解释一下原因吗! (x < 0 && y < 0)不等于以下两个表达式!(x < 0) && ! (y < 0)       AND       x > 0 && y > 0在第一个代码中是不是意味着x不小于0并且y不小于0?这是否也意味着 x 和 y 应该大于 0?任何帮助深表感谢!
查看完整描述

3 回答

?
炎炎设计

TA贡献1808条经验 获得超4个赞

在您的两个重写版本中,您需要 OR ( ||) 而不是 AND ( &&)。每当您反转 AND 条件的组成部分时都是如此。

! (x < 0 && y < 0)true如果x>= 0并且y< 0。要以其他形式获得相同的结果,您需要x >= 0 || y >= 0. (请注意,它>=不仅仅是>,但要点是||而不是&&。)


查看完整回答
反对 回复 2023-09-27
?
绝地无双

TA贡献1946条经验 获得超4个赞

让我们计算一下等效表达式! (x < 0 && y < 0)

请注意,如果否定出现在 && 之前,则它会变为 || 反之亦然。所以你的表达式将等于:

! (x < 0 && y < 0) --->   !(x<0) || !(y<0)   --->   x>=0 || y>=0

如下图所示,彩色区域就是你的表达式的结果:

https://img1.sycdn.imooc.com//6513ceff00011f6706550653.jpg

查看完整回答
反对 回复 2023-09-27
?
大话西游666

TA贡献1817条经验 获得超14个赞

在第一个示例中,括号中的两个表达式(“(x < 0)”和“(y < 0)”)必须等于“true”,整个表达式才会变为“false”。

在第二个示例中,前两个表达式包含第一个示例的括号内的每个表达式(“(x < 0)”和“(y < 0)”)。因此,只有这些表达式之一为“true”,才会导致整个表达式变为“false”,因为所有内容都通过 AND 运算符连接。

您可以设置 x=0 和 y=-1 并手动尝试。

查看完整回答
反对 回复 2023-09-27
  • 3 回答
  • 0 关注
  • 128 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信