【问题标题】:How to use || and && together in one if statement [duplicate]使用方法 ||和 && 一起在一个 if 语句中[重复]
【发布时间】:2017-04-01 22:22:56
【问题描述】:

我正在尝试检查 firstday 是等于 5 还是 6,在这两种情况下,如果 totalDays 等于 31 则执行一些操作,为此,哪个语句是正确的?

代码 1:

if (firstday > 5 || firstday > 6 && totalDays == 31){}

代码 2:

if (firstday > 5 && totalDays == 31 || firstday > 6 && totalDays == 31) { }

【问题讨论】:

  • 我认为您不需要在第一个声明中使用|| firstday > 6
  • 尝试用英语迭代您的条件并使用() 对条件进行分组。在您的声明中 firstday 必须等于 5 或​​ 6,但在这两种情况下,totalDays 必须是 31。所以解决第一部分:firstday === 5 || firstday === 6。你的第二个条件是totalDays===31。但这必须在两种情况下都发生,所以这就变成了,(firstday === 5 || firstday === 6) && totalDays===31

标签: javascript


【解决方案1】:

这是正确答案:

if ((firstday == 5 || firstday == 6) && totalDays == 31){
    //Do something
}

【讨论】:

  • 只是一个指针,你应该使用===而不是==
【解决方案2】:

第一个条件: 它返回 True,如果 firstday 是 5 OR 6.. AND TotalDays 是 31。

if ((firstday == 5 || firstday == 6) && totalDays == 31){ }

【讨论】:

    【解决方案3】:

    两者都错了 您需要使用 == 运算符。

    if ((firstday == 5 || firstday == 6) && totalDays == 31){}
    

    【讨论】:

    • 您需要在 || 周围加上括号运营商
    • 是的。我刚刚编辑了它。谢谢。
    【解决方案4】:

    您的逻辑都有效,但您在问题中提到“如果第一天等于 5 或​​ 6”,所以我建议您使用 '==' 而不是 '>'。后者将接受任何大于 5 的值,这与您想要的不匹配。

    以下任一行都将达到您想要的结果。

    if (firstday == 5 || firstday == 6 && totaldays == 31) {}
    

    if (firstday == 5 && totalDays == 31 || firstday == 6 && totalDays == 31) { }
    

    【讨论】:

      【解决方案5】:
      if ((firstday == 5 || firstday == 6) && totalDays == 31){}
      

      这里最里面的括号(firstday == 5 || firstday == 6)里面的表达式首先被执行。根据该值评估剩余表达式,如果上述表达式返回 false,则不会评估剩余表达式,因为 false&&(true||false) 无论如何都是 false。

      【讨论】:

      • 您会费心解释一下您的代码吗?只是将其倾倒在答案中是没有用的。
      猜你喜欢
      • 2011-06-09
      • 2017-03-02
      • 2020-01-10
      • 1970-01-01
      • 2018-04-30
      • 1970-01-01
      • 2022-10-01
      • 1970-01-01
      • 2012-01-23
      相关资源
      最近更新 更多