使用方法 ||和 && 一起在一个 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 语句中[重复]的主要内容,如果未能解决你的问题,请参考以下文章

&& 和 | 的使用表达式中的运算符一起

While 循环与 || 一起使用但不是&&,不明白为啥?

“var”和原始类型如何结合在一起?

将右值与 & 运算符一起使用

virtualenvwrapper和pyenv可以一起使用吗?

与样式组件一起使用的 Before 和 After 伪类