繁体   English   中英

简单的评分系统。 不断收到错误“未定义”。 我做错了什么?

[英]Simple Grading system. Keep getting error 'undefined'. What I'm I doing wrong?

我不断收到错误“未定义”,但只有一个已经定义的变量(等级)。 协助将不胜感激。

 //Grading system: // A = 84 and above // D = 50 - 59 // B = 71 - 83 // E = 49 and below // C = 60 - 70 function Grading_System(grade){ var grade; switch(grade){ case(grade >= 84): return "A"; break; case(grade < 84 && grade > 70): return "B"; break; case(grade >= 60 && grade <= 70): return "c"; break; case(grade >= 50 && grade < 60): return "D"; break; case(grade < 50): return "E"; break; } } console.log(Grading_System(69)); 

您需要使用true进行检查,因为对表达式进行了评估,并使用严格的比较对照switch语句的值对其进行了检查。

switch (true) {

您可以省略break语句,因为前一个return语句结束了该函数。

 function getGrade(grade) { switch (true) { case (grade >= 84): return "A"; case (grade < 84 && grade > 70): return "B"; case (grade >= 60 && grade <= 70): return "c"; case (grade >= 50 && grade < 60): return "D"; } return "E"; } console.log(getGrade(69)); 

您正在函数内部重新声明“等级”,但未对其进行初始化,因此它将是未定义的。 删除行var grade; 看看是否可行。 另外,最好包含一个default ,这样,如果没有开关匹配,则给出默认值,如果返回,我不认为需要“ break”:

function Grading_System(grade){
  var grade;

  switch(grade){
      case(grade >= 84):
        return "A";
      case(grade < 84 && grade > 70):
        return "B";
      case(grade >= 60 && grade <= 70):
        return "c";
      case(grade >= 50 && grade < 60):
        return "D";
      case(grade < 50):
        return "E";
      default:
        return "F";
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM