我在运行下面的if语句时遇到了问题。我正在上一个在线课程,我唯一的资源就是课本。感谢您的帮助。我能够让它返回除提示、错误消息之外的任何内容,然后退出程序。它正确地运行了一个连续循环。
var numberGrade;
var grade = [];
do {
numberGrade = prompt("Enter number grade from 0 through 100\nOr enter -1 to end entries\n");
numberGrade = parseInt(numberGrade);
if (numberGrade >= 0 && numberGrade <= 100 ) {
grade[grade.length] = numberGrade;
} else if (numberGrade != -1) {
alert("Entry not valid!\n Entry must be a valid number from 0 through 100 \n Or enter -1 to end entries");
}
}
while (numberGrade != -1);
for (var num = 0; num <= grade; num++) {
if (grade >= 0 && grade <= 59) {
alert ("Number grade =" + grade + "\nLetter Grade = F");
}
if (grade >= 60 && grade <= 62) {
alert ("Number grade =" + numberGrade + "\nLetter Grade = D-");
}
if (grade >= 63 && grade <= 66) {
alert ("Number grade =" + numberGrade + "\nLetter Grade = D");
}
if (numberGrade >= 67 && numberGrade <= 69) {
alert ("Number grade =" + numberGrade + "\nLetter Grade = D+");
}
if (numberGrade >= 70 && numberGrade <= 76){
alert ("Number grade =" + numberGrade + "\nLetter Grade = C");
}
if (numberGrade >= 77 && numberGrade <= 79) {
alert ("Number grade =" + numberGrade + "\nLetter Grade = C+");
}
if (numberGrade >= 80 && numberGrade <= 82) {
alert ("Number grade =" + numberGrade + "\nLetter Grade = B-");
}
if (numberGrade >= 83 && numberGrade <= 86) {
alert ("Number grade =" + numberGrade + "\nLetter Grade = B");
}
else if (numberGrade >= 87 && numberGrade <= 89) {
alert ("Number grade =" + numberGrade + "\nLetter Grade = B+");
}
if (numberGrade >= 90 && numberGrade <= 92) {
alert ("Number grade =" + numberGrade + "\nLetter Grade = A-");
}
if (numberGrade >= 93 && numberGrade <= 100) {
alert ("Number grade =" + numberGrade + "\nLetter Grade = A");
}
}发布于 2018-09-01 09:09:39
在循环初始化中,因为grade是一个数组而不是数字,所以语句num <= grade是没有意义的。将您的循环更改为for (var num = 0; num < grade.length; num++)。然后,您的if语句应该针对grade数组的元素进行测试:
if (grade[num] >= 0 && grade[num] <= 59) {
alert ("Number grade =" + grade[num] + "\nLetter Grade = F");
}发布于 2018-09-01 09:03:26
我稍微修改了一下你的代码,以便正常工作。它可以用更好的方式来完成,但我选择了保持简单,这样你仍然可以理解它。
我创建了一个将数字等级转换为字母的函数,返回要输出的字符串。
var numberGrade;
do {
numberGrade = prompt("Enter number grade from 0 through 100\nOr enter -1 to end entries\n");
numberGrade = parseInt(numberGrade);
if (numberGrade >= 0 && numberGrade <= 100 ) {
// If the input is valid, calls the function and creates an alert with the return
alert(convertGrade(numberGrade));
} else if (numberGrade != -1) {
alert("Entry not valid!\n Entry must be a valid number from 0 through 100 \n Or enter -1 to end entries");
}
} while (numberGrade != -1);
// Function that converts the grade, returning the message
function convertGrade(grade) {
if (grade >= 0 && grade <= 59) {
return ("Number grade =" + grade + "\nLetter Grade = F");
}
if (grade >= 60 && grade <= 62) {
return ("Number grade =" + grade + "\nLetter Grade = D-");
}
if (grade >= 63 && grade <= 66) {
return ("Number grade =" + grade + "\nLetter Grade = D");
}
if (grade>= 67 && grade <= 69) {
return ("Number grade =" + grade + "\nLetter Grade = D+");
}
if (grade>= 70 && grade <= 76){
return ("Number grade =" + grade + "\nLetter Grade = C");
}
if (grade>= 77 && grade <= 79) {
return ("Number grade =" + grade + "\nLetter Grade = C+");
}
if (grade>= 80 && grade <= 82) {
return ("Number grade =" + grade + "\nLetter Grade = B-");
}
if (grade>= 83 && grade <= 86) {
return ("Number grade =" + grade + "\nLetter Grade = B");
}
if (grade>= 87 && grade <= 89) {
return ("Number grade =" + grade + "\nLetter Grade = B+");
}
if (grade>= 90 && grade <= 92) {
return ("Number grade =" + grade + "\nLetter Grade = A-");
}
if (grade>= 93 && grade <= 100) {
return ("Number grade =" + grade + "\nLetter Grade = A");
}
}https://stackoverflow.com/questions/52124041
复制相似问题