我正在编写一个需要字母等级的程序。A 得到 4.0,B 得到 3.0,以此类推。如果您输入 B+ 或 B-,它将分别减去 0.3 或加上 0.3(因此 B+ 将是 3.3)。
在我的代码中,当我测试像 B+ 这样的字母时,它给了我 0.3,而不是实际返回实际成绩的减去值。我究竟做错了什么?
public class Grade {
private String grade;
private double gradeNum;
// Constructor
public Grade(String showGrade) {
grade = showGrade;
gradeNum = 0;
}
// getNumericGrade method to return grade number
public double getNumericGrade() {
String suffix;
suffix = grade.substring(1);
if(suffix.equals("+")) {
gradeNum = gradeNum + .3;
} else if(suffix.equals("-")) {
gradeNum = gradeNum - .3;
}
String letterGrade = grade.substring(0);
if(letterGrade.equalsIgnoreCase("A")) {
gradeNum = 4.0;
} else if(letterGrade.equalsIgnoreCase("B")) {
gradeNum = 3.0;
} else if(letterGrade.equalsIgnoreCase("C")) {
gradeNum = 2.0;
} else if(letterGrade.equalsIgnoreCase("D")) {
gradeNum = 1.0;
} else if(letterGrade.equalsIgnoreCase("F")) {
gradeNum = 0.0;
} else {
System.out.println("Invalid letter grade");
}
return gradeNum;
}
}