我正在尝试编写一个输入学生平均值的程序并返回: - 如果学生的平均值是90-100 - 如果学生的平均分为80-89,则为B. - 如果学生的平均分数是70-90,则为C. - 如果学生的平均分为60-69,则为D. - 如果学生的平均分数是0-59,则为E. - 如果平均值不在0到100之间,则显示"无效输入"。
首先,应该要求用户输入学生的平均值,验证平均值(=值应该在1 -100之间),然后: - 如果有效,调用函数确定并返回A,B ,C,D或E取决于平均值。 - 如果平均值无效或用户按下取消按钮,则显示警告消息并退出程序。
到目前为止,这是我的代码:
var myAvg = prompt("Please enter your grade percentage",0)
if ( isNaN(myAvg) || myAvg < 1 || myAvg > 100 ) {
alert("Average must be a percentage value. Please re-enter your grade again.");
}
function myAvg (gradeA,gradeB,gradeC,gradeD,gradeE) {
switch (true) {
case (myAvg >= 90 && myAvg < 100):
document.write("Your grade is an myAvg<br />" );
document.write(gradeA + " " );
break;
case (myAvg >= 80 && myAvg < 89):
document.write("Your grade is an myAvg<br />" );
break;
case (myAvg >= 70 && myAvg < 79):
document.write("Your grade is an myAvg<br />" );
break;
case (myAvg >= 60 && myAvg < 69):
document.write("Your grade is an myAvg<br />" );
break;
case (myAvg >= 0 && myAvg < 59):
document.write("Your grade is an myAvg<br />" );
break;
default: document.write("Please enter a valid percentage<br />");
}
}
myAvg("gradeA", "B", "C", "D", "E" );
答案 0 :(得分:0)
这是你的代码在修改一下后所做的事情:
function myAvg (average, gradeA,gradeB,gradeC,gradeD,gradeE) { switch (true) {
document.write("Your grade is an average<br />" );
if (average >= 90){
document.write(gradeA + " " );
} else if (average >= 80){
document.write(gradeB + " " );
} else if (average >= 70){
document.write(gradeC + " " );
} else if (average >= 60){
document.write(gradeD + " " );
} else {
document.write(gradeE + " " );
}
}
var average = prompt("Please enter your grade percentage",0)
if ( isNaN(average) || average < 0 || average > 100 ) {
alert("Average must be a percentage value. Please re-enter your grade again.");
} else {
myAvg(average, "A", "B", "C", "D", "E" );
}
你可以在函数内部使用switch语句,是的,但你没有正确使用它。在Javascript中(与Perl,Ruby或者Python不同),你不能把条件放在这样的开关/案例中。这是if / else if的任务。其次,由于您已经确定平均值为> = 0且&lt; = 100,因此您无需检查函数内部的那些。第三,您不需要在脚本中指定上限,您可以像上面一样逐个消除可能性。第四,你的名字与所有那些“myAvg”的词都有冲突。
答案 1 :(得分:0)
这是您正在做的修改版本。我保持它与你正在做的非常接近,但这就是我打破部件的方式。为了使这个工作,你还需要在html中添加一个div(我不喜欢使用“document.write”):
<div id="message"></div>
但是,如果您愿意,可以替换该部分。有更好的方法可以与其他库一起完成这些部分,但这可以帮助你。
function getGrade(score, grades) {
grades = grades || [
{
min: 90,
grade: 'A'
},
{
min: 80,
grade: 'B'
},
{
min: 70,
grade: 'C'
},
{
min: 60,
grade: 'D'
},
{
min: 0,
grade: 'F'
}
];
for (var i in grades.length) {
if (score >= grades[i].min) return grades[i].grade;
}
return;
}
function showGrade(score) {
var grade = getGrade(score);
document.getElementById('message').innerHTML = "Your grade is: " + grade;
}
function getScore() {
var score = prompt("Please enter your grade percentage", 0);
if (isNaN(score) || score < 0) {
alert("Average must be a percentage value. Please re-enter your grade percentage.");
getScore();
} else {
showGrade(score);
}
}
getScore();
希望这有帮助。
- 威尔
答案 2 :(得分:0)
function vote(){}