首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >多个javascript条件

多个javascript条件
EN

Stack Overflow用户
提问于 2018-05-20 20:10:30
回答 2查看 71关注 0票数 1

我在javascript中设置了一个条件,如果a valueb value大于59,并且c1c2c3c4中的任何一个大于21,则我的条件将为真。它工作得很好,但当我输入a value 50b value 30c1 value 25时,它将转到else语句。

代码如下:

代码语言:javascript
代码运行次数:0
运行
复制
if((a > 59) || (b > 59) &&  (c1 > 21) &&  (c2 > 21) &&  (c3 > 21) &&  (c4 > 21)){
    total = a + b + c1 + c2 + c3 + c4;
}
    else {

    }

你们能帮我解决如何满足我的条件吗?

EN

回答 2

Stack Overflow用户

发布于 2018-05-20 20:17:18

根据您的评论

@UnholySheep我将此语句设置为a或b应大于59,c1、c2、c3或c4应大于21,这是正确的语句

这就是你真正要找的东西:

代码语言:javascript
代码运行次数:0
运行
复制
(a > 59 || b > 59) && (c1 > 21 || c2 > 21 || c3 > 21 || c4 > 21)

它是这样工作的:

  • (a > 59 || b > 59)检查59
  • (c1 > 21 || c2 > 21 || c3 > 21 || c4 > 21)b是否大于59
  • (c1 > 21 || c2 > 21 || c3 > 21 || c4 > 21)如果其中一个大于21
  • &&运算符检查两个表达式是否都为真,只有在这种情况下它才返回true

代码语言:javascript
代码运行次数:0
运行
复制
let a=60,b=30,c1=30;

console.log((a > 59 || b > 59) && (c1 > 21 || c2 > 21 || c3 > 21 || c4 > 21));

票数 3
EN

Stack Overflow用户

发布于 2018-05-20 20:33:58

假设你的预期是正确的,那么我会说你的说法与你的预期是错误的。

“我将此语句设置为a或b应大于59 c1、c2、c3或c4应大于21,这是正确的语句。”

下面陈述中的“”导致您的期望落空。当a为50,b为30时,第一部分"a或b应大于59“计算为false。

第二部分"c1、c2、c3或c4应大于21“在c1为25时计算为true。

所以,if(...)中的整个条件表达式归结为: false true。这总是会导致错误,这就是为什么你的控制流会进入其他部分。

你需要要么纠正你的陈述,要么纠正你的期望。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50434708

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档