代码编译并且在我输入101之前很好,它显示为你的成绩:。我做错了什么?
public static void main(String args[])
{
Scanner sc = new Scanner(System.in);
int yourGrade;
char grade = 0;
System.out.print("Enter your grade (between 0 and 100 inclusive): ");
yourGrade = sc.nextInt();
if ((yourGrade>0) && (yourGrade<40))
{
grade='F';
}
else if ((yourGrade>39) && (yourGrade<55))
{
grade='D';
}
else if ((yourGrade>54) && (yourGrade<70))
{
grade='C';
}
else if ((yourGrade>69) && (yourGrade<85))
{
grade='B';
}
else if ((yourGrade>84) && (yourGrade<=100))
{
grade='A';
}
if ((yourGrade<0) && (yourGrade>100))
{
System.out.println(" " + grade + " is not a valid grade.");
System.out.println("Please enter a value between 0 and 100 inclusive.");
}
else
{
System.out.println("Your grade is: " + grade);
}
我尝试在最后的if语句之前添加最后一位,我仍然无法让它显示我想要的内容。请原谅我,如果我这样做完全错了,因为我刚刚开始这个并且想知道如何做到这一点。
答案 0 :(得分:1)
if ((yourGrade<0) && (yourGrade>100))
这两个条件不能两者都是真的。如果要检查其中一个是否为真,请使用或而不是和。
if (yourGrade<=0 || yourGrade>100)
此外,我将<0
更改为<=0
,因为 F 的成绩条件不包括零。
您也可能会注意到,在这种情况下,您的grade
变量仍将设置为字符零,因为这是您初始化它的方式。所以打印
System.out.println(" " + grade + " is not a valid grade.");
没有多大意义。
答案 1 :(得分:0)
改变&amp;&amp;最后的if语句到||。请仔细查看if语句中的条件。
答案 2 :(得分:0)
你正在混淆'&amp;&amp;'条件为'||',您想要的条件是什么(如果成绩为&lt; 0 OR 成绩> 100),其涵盖101级,即:
if((grade&lt; 0)||(grade> 100))
{
//条件
}
但您所编码的是(如果成绩<0 且成绩> 100),这是根据您的计划要求无法实现的。
希望有所帮助!!!