我是新来的。我的if / else if语句有问题。
我明白了:
if (unalumno.notas >= "90" && unalumno.notas <= "100") {
unalumno.notas = "A";
} else if (unalumno.notas >= "80" && unalumno.notas <= "89") {
unalumno.notas = "B";
} else if (unalumno.notas >= "70" && unalumno.notas <= "79") {
unalumno.notas = "C";
} else if (unalumno.notas >= "60" && unalumno.notas <= "69") {
unalumno.notas = "D";
} else if (unalumno.notas <= "59") {
unalumno.notas = "F";
}
所有 else if 语句都以正确的结果给我正确的结果,但第一个 if 继续以数字给出结果。希望能理解我。对不起,英语大声笑
度过美好的一天
答案 0 :(得分:6)
正如我在评论中所说,解析整数并将所有比较更改为数字而不是字符串:
var unalumnoNotas = parseInt(unalumno.notas, 10);
if (unalumnoNotas >= 90 && unalumnoNotas <= 100) {
notas = "A";
} else if (unalumnoNotas >= 80 && unalumnoNotas <= 89) {
notas = "B";
} else if (unalumnoNotas >= 70 && unalumnoNotas <= 79) {
notas = "C";
} else if (unalumnoNotas >= 60 && unalumnoNotas <= 69) {
notas = "D";
} else if (unalumnoNotas <= 59) {
notas = "F";
}
此外,如果您抛出错误或提前返回(如果该值大于100),您可以删除所有额外的&& <= 89
if (unalumnoNotas > 100) {
throw new Error('Number too high');
}
if (unalumnoNotas >= 90) {
notas = "A";
} else if (unalumnoNotas >= 80) {
notas = "B";
} else if (unalumnoNotas >= 70) {
notas = "C";
} else if (unalumnoNotas >= 60) {
notas = "D";
} else if (unalumnoNotas <= 59) {
notas = "F";
}
答案 1 :(得分:1)
您应该使用整数进行比较,或者只使用parseInt(&#34;您的字符串&#34;)。
答案 2 :(得分:0)
您正在比较字符串而不是您应该比较的整数。而不是你认为你正在进行的数字比较,它实际上是比较字符串中字符在ASCII位置上的位置。
您应该将值解析为int
类型,然后与数字而不是字符串进行比较。