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.