如果a value
或b value
大于59
和c1
,c2
,c3
,{我在javascript中创建条件{1}}任何这些都大于c4
,而不是我的条件。它工作正常,但当我输入21
a value 50
和b value 30
时,它会转到其他声明。
以下是代码:
c1 value 25
你能帮我解决如何满足我的条件吗?
答案 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你应该使用或(||)运算符