Logic 使用布尔运算符

Logic 使用布尔运算符,logic,Logic,这个很好用 if ((a >= 40 && a <= 50) || (a >= 60 && a <= 80)) // do something if((a>=40&&a=60&&a50)| |(a80)) //做点什么 代码未按预期工作。我想要像if not(condition)这样的东西,同时我建议找出如何使它正常工作(通过重写) if(!((a>=40&&a=60&&aif((a50)&&a80)) //做点什么 您可能需要查看 1

这个很好用

if ((a >= 40 && a <= 50) || (a >= 60 && a <= 80))
// do something
if((a>=40&&a=60&&a50)| |(a<60&&a>80))
//做点什么

代码未按预期工作。我想要像if not(condition)

这样的东西,同时我建议找出如何使它正常工作(通过重写)

if(!((a>=40&&a=60&&a
if((a<40|a>50)&&a<60|a>80))
//做点什么
您可能需要查看

1.!((a>=40&&a=60&&a=40&&a=60&&a=40)| |!(a=60)| | |!(a50)&&(a<60 | | a>80))
或者换句话说:(a<40 | |(50
您需要一个“或”

if((a<40|a>50)和&(a<60|a>80))
或者,不是

if (!((a >= 40 && a <= 50) || (a >= 60 && a <= 80)))
如果(!((a>=40&&a=60&&a你有第二个例子

if ((a < 40 && a > 50) || (a < 60 && a > 80))

if((a<40|a>50)和&(a<60|a>80))

假设您想要

if ( not ((a >= 40 && a <= 50) || (a >= 60 && a <= 80)) )
if(非((a>=40&&a=60&&a 50&&a<60)|a>80)
第一个表达式允许
a
为40到50或60到80之间的数字。如果在英语中否定该表达式,则需要小于40或介于50到60或大于80的数字


德摩根定律可以给你一个准确的答案,但我更喜欢你可以大声朗读并理解的代码。

如果(((a>=40&&a=60&&a啊哈,那个有你用过的定律的家伙叫什么名字?我一直想记住这是De Morgan的一个准确应用,但由此产生的表达式在我看来有点模糊。一个数字怎么能同时小于40和大于50?“代码没有按预期工作。”--当您要求同时小于40和大于50的数字时,您真正期望的是什么?可能在模空间中工作:P+1。几个示例都演示了一个可能的解决方案,并提供了有关从何处获取更多信息的参考。逻辑正确,但结果很难阅读,因此无法理解s短路评估。我还设法将两个步骤合并为一个步骤。现在这比我的快速修复好得多
if (!((a >= 40 && a <= 50) || (a >= 60 && a <= 80)))
if ((a < 40 || a > 50) && (a < 60 || a > 80))
if (!((a >= 40 && a <= 50) || (a >= 60 && a <= 80)))
if ((a < 40 && a > 50) || (a < 60 && a > 80))
if (!((a < 40 && a > 50) || (a < 60 && a > 80)))
if ((a < 40 || a > 50) && (a < 60 || a > 80))
if ( not ((a >= 40 && a <= 50) || (a >= 60 && a <= 80)) )
if (a < 40 || (a > 50 && a < 60) || a > 80)
if (!((a >= 40 && a <= 50) || (a >= 60 && a <= 80)))