我的if语句"在"之间给我错误的结果

时间:2016-10-31 17:12:00

标签: javascript jquery if-statement

我是新来的。我的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 继续以数字给出结果。希望能理解我。对不起,英语大声笑

度过美好的一天

3 个答案:

答案 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类型,然后与数字而不是字符串进行比较。