我有一个类分配,其中我必须创建一个测试4个整数的组合锁的函数。例如,让我们调用参数a,b,c和d。在函数中:


  a可以是3、5或7
  
  b必须为2
  
  c可以在5到100之间的任何位置,包括5到100
  
  并且d可以小于9或大于20,但是9或20都不起作用


函数必须将所有这些数字测试为“正确”,以确保组合正确。我已经使用switch语句来使数字正确返回,但是有没有一种方法可以一次测试所有4个数字,并在达到错误数字时停止代码?

我尝试了类似下面的代码的方法,但是它返回为undefined。可能是因为它很长而且很荒谬。

    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 statementsthis article上查看了有关嵌套if ... else语句以及articles from Front Stuff和其他stack overflow问题的这些资源,以期弄清楚。我现在在砖墙上。

最佳答案

由于这是用于课堂作业的,因此我不会给您代码。相反,我会给你一个提示。

您的if语句无效。

a === 3 || 5 || 7

您需要左手分配5和7:

a === 3 || a === 5 || a === 7

您也可以通过先检查a早点返回。就像是:

if (a !== 3 && a !== 5 && a !== 7) {
  return 'incorrect'
}


这样可以使代码更整洁,并且之后的代码会更简单,因为您现在知道a是正确的。

07-24 09:47
查看更多