我一直收到错误“未定义”,但只有一个已经定义的变量(等级)。我们将非常感谢您的协助。
//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));
答案 0 :(得分:2)
您需要使用true
进行检查,因为该表达式是根据严格比较的switch
statement的值进行评估和检查的。
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));
答案 1 :(得分:0)
您正在函数内部重新声明“等级”,但未对其进行初始化,因此它将是未定义的。删除行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";
}
}