简体   繁体   中英

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. 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:

[..]
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():

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:

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

Add a check in the beginning to see if entry is a valid input:

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);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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