需要用于评分系统的Java IF语句

时间:2015-03-07 17:25:06

标签: javascript

我需要有人告诉我如何在用户放入等级后尝试添加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" );
}

3 个答案:

答案 0 :(得分:2)

在开始评分之前,你应该检查你的价值范围

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);
}

答案 1 :(得分:1)

这似乎有效:

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以上的标记。只要elseif子句中的一个成功,所有if都将失败。它存储了'未分类'作为等级。失败等级给予0到40的任何分数,如果失败,则等级默认为未分类。我们现在突破循环并分别评估grade - 如果它不是'未分类'那么标记是有效的,我们提醒等级,如果'等级'等于'未分类'那么警报就这样说了'无效标记,超出范围0-100'。

还有一件事,在JavaScript中如果比较后只有一行代码,则不需要使用大括号{},而不是:

else if( mark > 60 ) {grade = "Upper Second";}

我们可以使用:

else if( mark > 60 ) grade = "Upper Second";

(尽管对于需要{}的函数不是这样,无论函数体中的行数是多少。)

答案 2 :(得分:0)

您的代码失败了,因为您没有检查标记是否低于(或等于)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 );
    }

顺便说一下,这不是Java,如果你想要Java,那么用alert替换System.out.println ......