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