简体   繁体   English

在 JavaScript 中使用成绩计算器时如何显示错误消息?

[英]How to display error message when using a grade calculator in JavaScript?

Below is a grade calculator that will attach a letter grade to the number entered, using if/else statements.下面是一个成绩计算器,它会使用 if/else 语句将字母成绩附加到输入的数字上。 I am having trouble finding a way to display an error message if an out of ranger number or non numeric value is entered.如果输入了超出范围的数字或非数值,我很难找到显示错误消息的方法。 Any suggestions?有什么建议? Thanks!谢谢!

    var entry;
    var letterGrade;

    entry = prompt("Enter number grade from 0 through 100\n" +
                   "Or enter 999 to end entries", 999);
    entry = parseInt(entry);

if (entry <= 59)
    letterGrade = "F";
else if (entry >= 60 && entry <= 69)
    letterGrade = "D";
else if (entry >= 70 && entry <= 79)
    letterGrade = "C";
else if (entry >= 80 && entry <= 89)
    letterGrade = "B";
else if (entry >= 90 && entry <= 100)
    letterGrade = "A";

    alert("Number grade = " + entry + "\n" +
          "Letter grade = " + letterGrade);

Well your out of range would be anything >100 so you can cover that with an else in the end:好吧,您的超出范围将是大于 100 的任何值,因此您可以在最后使用 else 覆盖它:

[..]
else if (entry >= 90 && entry <= 100)
    letterGrade = "A";
else
    alert("Error, your number " + entry + " was out of range (>100)");

As for it not being a number, you can use isNaN():至于它不是数字,您可以使用 isNaN():

if(isNaN(entry)){
    alert("That was not a number!");
else {
    if (entry <= 59)
        letterGrade = "F";
    ....
}

Edit: I see your input is >0<101 so to catch negative numbers you would need to add this to your first if statement:编辑:我看到您的输入是 >0<101,因此要捕获负数,您需要将其添加到您的第一个 if 语句中:

if (entry >= 0 && entry <= 59)

Add a check in the beginning to see if entry is a valid input:在开头添加检查以查看entry是否为有效输入:

if(isNaN(entry) || entry < 0 || entry > 100)
    alert('Only a grade between 0 and 100 is allowed');

 var entry , letterGrade; entry = parseInt(prompt("Enter number grade from 0 through 100\\n" + "Or enter 999 to end entries", 999)); if(isNaN(entry) || entry < 0) alert('Only a grade between 0 and 100 is allowed'); else if (entry <= 59) letterGrade = "F"; else if (entry >= 60 && entry <= 69) letterGrade = "D"; else if (entry >= 70 && entry <= 79) letterGrade = "C"; else if (entry >= 80 && entry <= 89) letterGrade = "B"; else if (entry >= 90 && entry <= 100) letterGrade = "A"; alert("Number grade = " + entry + "\\n" + "Letter grade = " + letterGrade);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM