else if 语句不起作用

else if statement not working

我是 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");
        }
    }

}

比较符号有误。总会落入第一个或第二个if。您必须始终测试更高,而不是更低

如果 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{} 条件放在最后,这样如果没有选项为真,则将执行 else。

同时勾选 Java Docs

将您的代码更改为:

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 小于 90,所以第二个 if 将为真,虽然他应该有 D,但这个人会得到 B。如果第一个 if 失败(这意味着成绩低于 90,那么你检查是否成绩大于或等于 85(然后获得 B),否则检查它是否大于或等于 75 等等

如果你输入0作为标记,它会满足第一个else if条件,即0 < 90,从那里它就不会费心检查其他else if语句。 试试先从低分开始写,还是这样写才行:

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