【问题标题】: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
}

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

【问题讨论】:

    标签: conditional logic boolean boolean-logic logical-operators


    【解决方案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】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-06-21
          • 2021-12-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-10-13
          相关资源
          最近更新 更多