需要一个用于评分系统的 JavaScript IF 语句
Need a JavaScript IF Statement for Grading System
>我需要有人告诉我如何在用户输入成绩后尝试添加 IF 语句,如果分数大于 100 或小于 0,该语句需要在末尾显示警报。我尝试了很多不同的东西,但真的不知道如何呈现它。如果有人能告诉我如何做,那就太好了。
var mark;
var grade;
grade = "Not Yet Graded";
mark = prompt( "Please input the mark(%)" );
mark = parseInt( mark, 10 ); // see comment
if( mark > 70 )
{
grade = "First Class";
}
else if( mark > 60 )
{
grade = "Upper Second";
}
else if( mark > 50 )
{
grade = "Lower Second";
}
else if( mark > 40 )
{
grade = "Third Class";
}
else if( mark < 40 )
{
grade = "Fail";
}
alert( "Mark: " + mark + "% - Grade: " + grade );
}
else
{
alert( "Invalid mark, outside range 0-100" );
}
在开始评分之前,您应该检查您的值范围,例如
if (mark < 0 || mark > 100)
{
alert('Invalid mark, outside range 0-100');
}
else if (mark > 70)
{
grade = 'First Class';
}
else if (mark > 60)
{
grade = 'Upper Second';
}
else if (mark > 50)
{
grade = 'Lower Second';
}
else if (mark > 40)
{
grade = 'Third Class';
}
else if (mark <= 40)
{
grade = 'Fail';
}
另请注意,您需要mark >= 40
第三类,或者如果mark <= 40
,则将用户的成绩标记为失败。否则,当分数40
时,您将错过评分。
最后,您只需检查grade
是否已初始化即可显示成绩警报。
if (grade != null)
{
alert('Mark: ' + mark + '% - Grade: ' + grade);
}
似乎有效:
var mark;
var grade;
grade = "Not Yet Graded";
mark = prompt( "Please input the mark(%)" );
mark = parseInt( mark, 10 ); // see comment
if (mark>100) grade="unclassified";
else if( mark > 70 ) grade = "First Class";
else if( mark > 60 ) grade = "Upper Second";
else if( mark > 50 ) grade = "Lower Second";
else if( mark > 40 ) grade = "Third Class"
else if( mark >= 0 ) grade = "Fail";
else grade="unclassified";
if (grade!="unclassified") alert( "Mark: " + mark + "% - Grade: " + grade );
else alert( "Invalid mark, outside range 0-100" );
它首先检查超过 100 的标记。一旦if
子句之一成功,所有elseif
都将失败。它将"未分类"存储为等级。不及格等级为任何分数 0 到 40(包括 0 到 40),如果失败,则成绩默认为未分类。我们现在脱离循环并分别评估grade
- 如果它不是"未分类",那么该标记是有效的,我们提醒成绩,如果"等级"等于"未分类",则警报以"无效标记,超出范围 0-100"表示。
还有一件事,在 JavaScript 中,如果在比较后只有一行代码,则不需要使用大括号 {},因此代替:
else if( mark > 60 ) {grade = "Upper Second";}
我们可以使用:
else if( mark > 60 ) grade = "Upper Second";
(尽管对于需要 {} 的函数来说,无论函数体中的行数如何,情况并非如此。
您的代码失败,因为您没有检查标记是否低于(或等于)100 和高于(或等于)0。这样,如果你得到110,你得到头等舱,如果你得到-10,你会失败。
您只需要确保在 if 的第一个系列中标记小于或等于 100,在最后一个 if 中大于或等于 0,然后在提醒标记再次介于 0 和 100(包含)之间之前打印要打印的内容。这样做:
if( mark > 70 && mark <= 100)
{
grade = "First Class";
}
else if( mark > 60 && mark <= 100)
{
grade = "Upper Second";
}
else if( mark > 50 && mark <= 100)
{
grade = "Lower Second";
}
else if( mark > 40 && mark <= 100)
{
grade = "Third Class";
}
else if( mark < 40 && mark >= 0)
{
grade = "Fail";
}
if (mark <= 100 && mark >= 0) {
alert( "Mark: " + mark + "% - Grade: " + grade );
}
else
{
alert( "Invalid mark, outside range 0-100" );
}
或者你也可以这样做(检查标记是否仅在开头介于 0 和 100 之间):
if (mark >= 0 && mark <= 100) {
if( mark > 70)
{
grade = "First Class";
}
else if( mark > 60)
{
grade = "Upper Second";
}
else if( mark > 50)
{
grade = "Lower Second";
}
else if( mark > 40)
{
grade = "Third Class";
}
else if( mark < 40)
{
grade = "Fail";
}
}
else {
alert( "Invalid mark, outside range 0-100" );
}
if (mark <= 100 && mark >= 0) {
alert( "Mark: " + mark + "% - Grade: " + grade );
}
- 为什么不't Javascript对我的输入值进行了一些重新检查
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 将函数的上下文应用于javascript变量
- 使用php或javascript从facebook相册URL中删除多余的部分
- 正在添加'X'按钮,在文本字段旁边使用javascript
- 如何在JavaScript中将字符串转换为函数引用
- 模糊事件的Javascript测试
- Javascript更改图标
- 如何将HTML id分配给元素,以及如何将JavaScript应用于元素
- 如何使用WCF服务和javascript表单post上传.doc文件
- javascript结合了数组和字典
- 这是什么 ==- javascript 运算符
- 从javascript创建一个列表
- 无法在通过jQuery的ajax加载的页面中执行javascript
- Javascript:selenium Web驱动程序isDisplayed()不工作
- 如何通过ajax刷新JSF填充的javascript变量
- 如何在Javascript中将JSon对象转换为数组
- Javascript生成的表单未提交
- 使用javascript将动态表从一个html页面打印到另一个html页
- 通过javascript重定向html传递php变量