Javascript中的语法错误将#s转换为字母

时间:2013-09-09 22:16:02

标签: javascript

我正在编写一个javaScript程序,将#s转换为成绩。我一直收到语法错误,但我似乎无法看到它。你有建议让我解决这个问题吗?

<script>        

            if (var entry >=94 and (&&) var entry <=100) prompt var      letterGrade="A";
            else if (var entry >=86 and (&&) var entry <=93 ) prompt var letterGrade ="B";
            else if (var entry >=78 and (&&) var entry <=85) prompt var letterGrade ="C";
            else if (var entry >=70 and (&&) var entry <=77 ) prompt var letterGrade ="D";
            else if (var entry >=69) prompt var letterGrade ="F";


        alert("Number grade = " + entry + "\n"
                + "Letter grade = " + letterGrade);
    }
    while (entry != 999);
</script>

2 个答案:

答案 0 :(得分:1)

好的,让我们看看。

<script>        

        if (var entry >=94 and (&&) var entry <=100) prompt var      letterGrade="A";

and (&&)非常奇怪。你从哪里得到那个的?你的意思是&& prompt并不代表此代码段中的任何内容。在var之前它只是挂在那里的方式是语法错误。它应该是一个功能吗?
var letterGrade="A";实际上是正确的。你正在分配一个变量。

当您尝试将变量与数字进行比较时,您正在使用var ...这仅用于分配变量。您实际上正在清除它并将其设置为undefined而不是引用它。

        else if (var entry >=86 and (&&) var entry <=93 ) prompt var letterGrade ="B";
        else if (var entry >=78 and (&&) var entry <=85) prompt var letterGrade ="C";
        else if (var entry >=70 and (&&) var entry <=77 ) prompt var letterGrade ="D";
        else if (var entry >=69) prompt var letterGrade ="F";

所有这些都与上述陈述有着相同的问题。

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

那会有用。

}

此随机大括号是语法错误。

while (entry != 999);

while应该做什么?这将是一个无限循环。身体里什么都没有。是不是entry也应该是百分比等级? 999与任何事情有什么关系?

</script>

所以,让我们看看。这就是您的代码似乎想要的。

var letterGrade; //declare the variable
var entry=87; //for testing... otherwise we'd get an referenceError

if(entry>94){ letterGrade='A'; }
else if(entry>86){ letterGrade='B'; }
else if (entry>78){ letterGrade='C'; }
else if (entry>70){ letterGrade='D'; }
else { letterGrade='F'; }


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

有更优雅的方法可以做到这一点,但希望这能指明你正确的方向。

答案 1 :(得分:0)

您不需要所有这些“var”关键字。另外,范围规格有点单调乏味。我建议你创建一个简单的功能来获得成绩。这里有一些JavaScript可以放在文档正文中演示......

function GetGrade(v)
{
    if (v > 100) return "n/a";
    if (v <69) return "F";
    if (v <77) return "D";
    if (v <85) return "C";
    if (v <93) return "B";
    return "A";
}
// Now let's show some sample scores and grades...
var grades =[94,91,88,72];
for(var i = 0; i < grades.length; i++)
{
    document.writeln('<p>Number grade ' +  grades[i] + ' = Letter grade: ' + GetGrade(grades[i]) + '</p>');
}