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