首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将数字等级转换为字母等级-带有显示等级的问题

将数字等级转换为字母等级-带有显示等级的问题
EN

Stack Overflow用户
提问于 2018-09-01 08:53:39
回答 2查看 810关注 0票数 0

我在运行下面的if语句时遇到了问题。我正在上一个在线课程,我唯一的资源就是课本。感谢您的帮助。我能够让它返回除提示、错误消息之外的任何内容,然后退出程序。它正确地运行了一个连续循环。

代码语言:javascript
复制
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");
    }
}
EN

回答 2

Stack Overflow用户

发布于 2018-09-01 09:09:39

在循环初始化中,因为grade是一个数组而不是数字,所以语句num <= grade是没有意义的。将您的循环更改为for (var num = 0; num < grade.length; num++)。然后,您的if语句应该针对grade数组的元素进行测试:

代码语言:javascript
复制
if (grade[num] >= 0 && grade[num] <= 59) {
    alert ("Number grade =" + grade[num] + "\nLetter Grade = F");
}
票数 2
EN

Stack Overflow用户

发布于 2018-09-01 09:03:26

我稍微修改了一下你的代码,以便正常工作。它可以用更好的方式来完成,但我选择了保持简单,这样你仍然可以理解它。

我创建了一个将数字等级转换为字母的函数,返回要输出的字符串。

代码语言:javascript
复制
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");
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52124041

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档