使用方法 ||和 && 一起在一个 if 语句中[重复]
Posted
技术标签:
【中文标题】使用方法 ||和 && 一起在一个 if 语句中[重复]【英文标题】:How to use || and && together in one if statement [duplicate] 【发布时间】: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
developer.mozilla.org/en/docs/Web/javascript/Reference/…
尝试用英语迭代您的条件并使用()
对条件进行分组。在您的声明中 firstday 必须等于 5 或 6,但在这两种情况下,totalDays 必须是 31。所以解决第一部分:firstday === 5 || firstday === 6
。你的第二个条件是totalDays===31
。但这必须在两种情况下都发生,所以这就变成了,(firstday === 5 || firstday === 6) && totalDays===31
【参考方案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。
【讨论】:
您会费心解释一下您的代码吗?只是将其倾倒在答案中是没有用的。以上是关于使用方法 ||和 && 一起在一个 if 语句中[重复]的主要内容,如果未能解决你的问题,请参考以下文章