在这里,如果我想要if语句的值,它将给我0.0,而不是我想要的如何解决这个问题的方法enter image description here
答案 0 :(得分:0)
在代码段中,在方法 setMark()中,您从用户获取的字符串数组中的输入,而在 getPoints()方法中,您将字符串数组与串。这就是为什么您的if()块总是返回false的原因。例如:以下结果将始终为假。
public static void main(String[] args) {
String[] mark = new String[5];
if(mark.equals("A+")){
System.out.print("true");
}
else{
System.out.print("false");
}
}
因此,在 getPoints()中,如果要计算总点数,则必须遍历mark [],然后检查每个数组元素的等级,例如“ A +”。像这样:
public double getPoints(){
for(String s : mark){
if(s.equals("A+") || s.equals("a+")){
point+=5;
}
else if(s.equals("B+") || s.equals("b+")){
point+=4.75;
}
//following remaining conditions
}
}