有好心人可以解释一下原因吗! (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
. (请注意,它>=
不仅仅是>
,但要点是||
而不是&&
。)

绝地无双
TA贡献1946条经验 获得超4个赞
让我们计算一下等效表达式! (x < 0 && y < 0)
请注意,如果否定出现在 && 之前,则它会变为 || 反之亦然。所以你的表达式将等于:
! (x < 0 && y < 0) ---> !(x<0) || !(y<0) ---> x>=0 || y>=0
如下图所示,彩色区域就是你的表达式的结果:

大话西游666
TA贡献1817条经验 获得超14个赞
在第一个示例中,括号中的两个表达式(“(x < 0)”和“(y < 0)”)必须等于“true”,整个表达式才会变为“false”。
在第二个示例中,前两个表达式包含第一个示例的括号内的每个表达式(“(x < 0)”和“(y < 0)”)。因此,只有这些表达式之一为“true”,才会导致整个表达式变为“false”,因为所有内容都通过 AND 运算符连接。
您可以设置 x=0 和 y=-1 并手动尝试。
添加回答
举报
0/150
提交
取消