否则如果声明不起作用

时间:2015-03-04 18:19:18

标签: java if-statement conditional-statements

我是Java新手,非常善于自学。我正在练习else和if语句。我已经编写了以下非常基本的程序来评分,但我不能得到所有其他if语句正常工作,它调用前两个,我可以让它显示A和B等级,但不是其余的,我有尝试移动和移除波浪形支架等但仍然无法工作。 请帮助并原谅我的无知,因为我是Java编程的新手。

提前致谢。

public class Grade {

    public static void main(String[] arguments) {
        int grade = 69;
        if (grade > 90) {
            System.out.println("Well done you got a A"); 
        } else if (grade < 90) { 
            System.out.println("Well done you got a B");
        } else if (grade < 85) {
            System.out.println("You got a C");
        } else if (grade < 75) {
            System.out.println("You got a D");
        } else if (grade < 75) {
            System.out.println("You got a E");
        }  else {
            System.out.println("You got a F");
        }
    }

}

4 个答案:

答案 0 :(得分:2)

如果69 if (grade < 90)为真,那么它就不会在其下面执行其他if

取而代之的是

  if (grade >= 90) {
        System.out.println("Well done you got a A"); 
    } else if (grade >= 85) { 
        System.out.println("Well done you got a B");
    } else if (grade >= 75) {
        System.out.println("You got a C");
    } else {
        System.out.println("You got a D");
    }

要添加更多成绩,请在上面添加更多else if(){},还要记住最后添加else{}条件,如果没有选项,则执行其他操作。

同时检查Java Docs

答案 1 :(得分:1)

比较标志是错误的。它将始终落入第一个或第二个if。您必须始终测试更高,而不是更低

答案 2 :(得分:1)

将您的代码更改为:

public class Grade {

public static void main(String[] arguments) {
    int grade = 69;
    if (grade >= 90) {
        System.out.println("Well done you got a A"); 
    } else if (grade >= 85) { 
        System.out.println("Well done you got a B");
    } else if (grade >= 75) {
        System.out.println("You got a C");
    } else if (grade >= 65) {
        System.out.println("You got a D");
    } else if (grade >= 55) {
        System.out.println("You got a E");
    }  else {
        System.out.println("You got a F");
    }
}
}

因为69 IS小于90所以第二个如果是真的那个家伙会得到一个B虽然他应该有D.如果第一个如果失败(这意味着等级低于90,那么你检查是否等级大于或等于85(然后得到B),检查它是否大于等于75等等

答案 3 :(得分:0)

如果输入0作为标记,它将满足第一个if条件,即0&lt; 90,从那里,它不会费心去检查其他的if语句。 首先尝试从较低的标记开始,或者这样写,以确保:

if (grade>85 && grade<90)
    System.out.Print("Grade here");