多个javascript条件

时间:2018-05-20 12:10:30

标签: javascript

如果a valueb value大于59c1c2c3,{我在javascript中创建条件{1}}任何这些都大于c4,而不是我的条件。它工作正常,但当我输入21 a value 50b value 30时,它会转到其他声明。

以下是代码:

c1 value 25

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

3 个答案:

答案 0 :(得分:3)

根据你的评论

  

@UnholySheep我这个陈述就像a或b应该大于59而且c1,c2,c3或c4应该大于21而不是真正的陈述

这就是你真正想要的:

(a > 59 || b > 59) && (c1 > 21 || c2 > 21 || c3 > 21 || c4 > 21)

这是它的工作原理:

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

let a=60,b=30,c1=30;

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

答案 1 :(得分:0)

假设您的期望是正确的,那么我会根据您的期望说您的陈述是错误的。

“我正在使这个陈述像a或b应该大于59 c1,c2,c3或c4应该大于21,而不是真正的陈述。”

以下语句中的“”会导致您的期望失败。 当a为50且b为30时,第一部分“a或b应大于59”正在评估它是假的。

当c1为25时,第二部分“c1,c2,c3或c4应大于21”正在评估为真。

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

您需要更正您的陈述或您的期望。

答案 2 :(得分:-1)

if ((a > 59) || (b > 59) && (c1 > 25 || c2 > 25 || c3 > 25 || c4 > 25)) {
    //do something
}

你正在检查c1,c2 c3和c4是否都大于25你应该使用或(||)运算符