我有一个类分配,其中我必须创建一个测试4个整数的组合锁的函数。例如,让我们调用参数a,b,c和d。在功能中:
a可以是3、5或7
b必须为2
c可以介于5到100之间,包括5到100
和d可以小于9或大于20,但是9或20都不起作用
该功能必须将所有这些数字测试为“正确”才能使组合正确。我已经使用switch语句来使数字正确返回,但是有没有一种方法可以一次测试所有4个数字,并在达到错误数字时停止代码?
我尝试了类似下面的代码,但是返回的是未定义的。可能是因为它很长而且很荒谬。
checkLock = function(a,b,c,d) {
if (a === 3 || 5 || 7 && b === 2 && c >= 5 || c <= 100 && d < 6 || d >
20) {
return "correct";
} else {
return "incorrect";
}
};
我尝试使用一些switch语句和交替的if..else语句。但这并不能捕获不正确的组合。
我在W3 Schools about switch statements,this article上查看了有关嵌套if ... else语句以及articles from Front Stuff和其他stack overflow问题的这些资源,以期找出问题的答案。出来。我现在在砖墙上。
答案 0 :(得分:1)
由于这是用于课程分配的,所以我不会给您代码。相反,我会给你一个提示。
您的if
语句无效。
a === 3 || 5 || 7
您需要左手分配5和7:
a === 3 || a === 5 || a === 7
您还可以通过先检查a
来早点返回。像这样:
if (a !== 3 && a !== 5 && a !== 7) {
return 'incorrect'
}
这样可以使代码更整洁,而之后的代码将更简单,因为您现在知道a是正确的。