无法使此错误消息生效

时间:2014-10-04 15:49:09

标签: java

代码编译并且在我输入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语句之前添加最后一位,我仍然无法让它显示我想要的内容。请原谅我,如果我这样做完全错了,因为我刚刚开始这个并且想知道如何做到这一点。

3 个答案:

答案 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),这是根据您的计划要求无法实现的。

希望有所帮助!!!