java else if。不知道我哪里出错了

时间:2012-02-13 00:37:25

标签: java

如果没有,我会继续努力。有什么想法吗?谢谢大家。顺便说一下,我是学生,所以请耐心等待。

public class QuizGrading
{
    public static void main (String [] args)
    {
        int grade = 100;     
        Scanner in = new Scanner (System.in);
        grade.input.in.nextlnt();
        { 
            System.out.print("Please enter grade");
        }
        if (grade >= 90)
        {
            System.out.println("You have been graded  A");
        }
        else if (grade <= 80 && >= 89) 
        {
            System.out.println("You have been graded B");
        }
    }    
}

3 个答案:

答案 0 :(得分:3)

尝试使用else if (grade <= 80 && grade >= 89)代替else if (grade <= 80 && >= 89)。请注意表达式右侧引用的成绩变量。

答案 1 :(得分:2)

将in变量分配到grade变量中,并使用grade变量更改if条件的内部。如果您看到在线java教程,将会很有帮助。

答案 2 :(得分:1)

您有问题的一行是:

else if (grade <= 80 && >= 89)

这是无效的语法,可以通过在后半部分插入grade来修复:

else if (grade <= 80 && grade >= 89)

但是,我希望你能告诉我,同时,小于或等于80 的数字大于或等于89。自从我上大学课程以来已经有一段时间了,但我不认为基础数学已经大大改变了 :-)我瘦了你的意思说的是:< / p>

else if (grade >= 80 && grade <= 89)

但请参阅下面的更好解决方案。

您需要修复该代码中的一些问题。

  1. 在接受后,您要求用户输入。您的Please enter grade应该在扫描仪输入之前到来。你也可以在一个区块内询问,这里没有必要。

  2. 您的第一个if语句会检查一些神秘的A变量,而不是正确的grade

  3. 如前所述,您的else if是错误的意思。这可以通过反转<=>=符号来解决,但由于您已经在else位,这意味着您 {{ 1}}这样你就可以逃脱下界检查。

  4. 您似乎在呼叫>= 90(使用小写nextlnt而不是大写l

  5. 通常最好使用默认I,这样您就可以看到代码中发生了什么。

  6. 修复这些问题可以提供类似的内容:

    else