我想知道如果我删除了我的第二个,如果点数高于100打印输入较低的分级点这不起作用,但是当我输入-100时,它的原理是什么呢?
public class nameofclass {
private int grade;
public void enterGrade(int points) {
if(points > 0) {
grade = grade + points;
} else {
if(points > 100) {
System.out.println("Enter a lower grading point");
}
System.out.println("Enter positive grading point");
}
}
}
答案 0 :(得分:1)
您的第一个if
过滤器指向超过0,这意味着当点较少时, JVM仅转到else
大于或等于0 。所以你的第二个if
永远不会被执行。
if(points > 0) {
...
} else {
//only if points are less than or equal 0
if(points > 100) {
//never runs
}
}
所以请将第二个if
放在第一个if
内,
if(points > 0) {
if(points > 100) {
System.out.println("Enter a lower grading point");
}
} else {
//only if points are less than or equal 0
}
答案 1 :(得分:1)
根据你的代码:
Points : 120
首先,if语句总是为真,因为(点> 100) 所以它不会成为其他部分。
Points: -100
首先,if语句为false,然后转到else部分。 然后:if(points> 100)语句为false。并打印值:输入正分级点