我可以简化这个使用逻辑否定运算符的条件语句吗?

Posted

技术标签:

【中文标题】我可以简化这个使用逻辑否定运算符的条件语句吗?【英文标题】:Can I simplify this conditional statement, which uses the logical negation operator? 【发布时间】:2011-03-11 18:24:43 【问题描述】:

抱歉,这是一个“逻辑运算符 101”之类的问题。我盯着屏幕看了 15 分钟,试图绕开它,但我被卡住了。

是否有更简洁/优雅的方式来表达以下内容(这是 javascript 语法,但不是与语言相关的问题):

if (!something && !something_else) 
  // do something

根据一些实验,这似乎不是逻辑上的等价物:

if (!(something && something_else) 
  // do something

此外,任何人都可以推荐在线资源以进一步研究此类问题吗?我假设这种类型的东西在计算机科学课程的抽象层面上有所涵盖,这是我真正想填补的编程知识中的一个重要空白。谢谢!

【问题讨论】:

【参考方案1】:
(Not A) And (Not B)

相当于:

Not (A Or B)

这是De Morgan's laws的应用程序

【讨论】:

谢谢,米奇!这里所有正确的答案 - 非常感谢 - 但我也感谢您提供的链接。这正是我想要的。 @Bungle。那你应该接受他的回答。他会很感激我确定 @Ben:会的。不过,看起来 SO 会让你等待大约 10 分钟。【参考方案2】:

正确的表达方式应该是:

if (!(something || something else)) 
  // do something

当您应用否定时,它会在 AND 和 OR 之间切换运算符。

【讨论】:

【参考方案3】:

我想,你需要

if (!(something || something_else)) 
  // do something

!something && !something_else 的意思是“既不是某事也不是某事_else”,相当于“既不(某事或某事_else)”

【讨论】:

【参考方案4】:

你所描述的一个词是非门,或非门。

【讨论】:

以上是关于我可以简化这个使用逻辑否定运算符的条件语句吗?的主要内容,如果未能解决你的问题,请参考以下文章

PHP中? :的条件判断语句怎样写?

常用逻辑用语@命题@猜想@量词

Python基础(if判断语句/逻辑运算符)

Python中使用逻辑与运算符“and”判断两个比较条件是否满足时编辑器提示“Simplify chained comparison ”的解决方法

我怎样才能简化这个逻辑

C语言逻辑运算符和if语句