javascript - 如何改进我的代码,为什么它不运行?
问题描述
此代码用于获取从 0 到 100 的数字分数并打印成绩。
这是针对学校的,使用的是网站“codehs.com”中的简化版 javascript 我已经坚持了一段时间,我想帮助修复我的代码。
/* This code is meant to take a number score from 0 to 100 and print
the grade. */
function start(){
/*given list */
lettergrade(100);
lettergrade(83);
lettergrade(68);
lettergrade(91);
lettergrade(47);
lettergrade(79);
}
/* this will print the grades above by using If/else if statements */
function lettergrade(score){
if(score = 90-100){
return("A");
}
else if(score = 80-90){
return("B");
}
else if(score = 70-79){
return("C");
}
else if(score = 60-69){
return("D");
}
else if(score = 0-59){
return("F");
}
}
预期结果是打印字母等级、AF 和 +/- 符号(如果需要),但代码不运行。
解决方案
您的代码有多个地方错误:
lettergrade(100)
是错误的,因为您的函数定义为letterGrade
JS 中区分大小写if(score = 90-99)
是错误的,因为if
语句期待表达式,您可以选择使用==
or===
。单个等号=
用于赋值,而不是用于比较。并且90-99
是错误的,那是计算而不是范围。正确的方法应该是if(score >= 90 && score <= 99)
/* this will print the grades above by using If/else if statements */
function letterGrade(score){
if(score >= 90 && score <= 99){
return("A");
}
else if(score >= 80 && score < 90){
return("B");
}
else if(score >= 70 && score < 80){
return("C");
}
else if(score >= 60 && score < 70){
return("D");
}
else if(score >= 0 && score < 60){
return("F");
}
}
function start(){
/*given list */
console.log(letterGrade(100));
console.log(letterGrade(83));
console.log(letterGrade(68));
console.log(letterGrade(91));
console.log(letterGrade(47));
console.log(letterGrade(79));
}
start();