【发布时间】:2014-12-08 09:11:13
【问题描述】:
据我所知,代码工作正常,但是当添加或编辑更多信息时,if else 语句开始表现异常。它正在正确读取百分比值,但没有返回正确的字母字符串。
var total = function (){
var earned = 0;
for(i = 0; i < Assignments.length; i++){
earned += parseInt(Assignments[i].earned);
}
var possible = 0;
for(i = 0; i < Assignments.length; i++){
possible += parseInt(Assignments[i].possible);
}
var percent = (Math.floor((earned/possible) * 100));
console.log(percent);
//grade letter
if (percent >= 90){
grade.innerHTML = '';
grade.innerHTML = 'A ' + percent + '%';
} else if (percent <= 89 && 80 >= percent){
grade.innerHTML = '';
grade.innerHTML = 'B ' + percent + '%';
} else if (percent <= 79 && 70 >= percent){
grade.innerHTML = '';
grade.innerHTML = 'C ' + percent + '%';
} else if (percent <= 69 && 60 >= percent){
grade.innerHTML = '';
grade.innerHTML = 'D ' + percent + '%';
} else if(percent <= 59 && 0 >= percent){
grade.innerHTML = '';
grade.innerHTML = 'F ' + percent + '%';
} else {grade.innerHTML = '';}
};
经过几次输入后,它会返回如下内容:
我认为可能是 else if 语句相互冲突,但老实说,我不知道为什么会这样。
【问题讨论】:
-
有什么冲突?您不想返回什么?它究竟是如何出错的?
-
为什么不使用 switch 语句?它比许多 if/else 块更容易阅读。 w3schools.com/js/js_switch.asp
-
@WhiteBr0wnie_24 如何使用带数字范围的开关?
-
我同意,您最好使用开关,这通常是开关的工作。与 switch 相比,任何 if/else 解决方法都非常可耻:)
-
@Juhana 等。 al.:虽然 可能 在 JavaScript 中为此使用
switch(stackoverflow.com/a/17145931/157247,参见 #3),但它只是冗长的else if。
标签: javascript if-statement return-value comparison-operators