我正在编写一个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>
答案 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>');
}