我正在制作一个成绩计算器程序,以及一个GPA计算器。在我的GPA计算器中,我有代码来获取他们为课程输入的成绩,并根据他们在计算时输入的内容显示字母等级。之后我会在计算中使用为某些数学显示的字母等级。当我运行程序时,它会一直返回0,虽然获得字母等级的代码在我的代码中相当远,而其他数学是接近结束的方法。
if(Double.parseDouble(txt11.getText()) < 50){
txt12.setText("F");
} else if(Double.parseDouble(txt11.getText()) >= 50 && Double.parseDouble(txt11.getText()) <= 59){
txt12.setText("D");
} else if(Double.parseDouble(txt11.getText()) >= 60 && Double.parseDouble(txt11.getText()) <= 64){
txt12.setText("C");
} else if(Double.parseDouble(txt11.getText()) >= 65 && Double.parseDouble(txt11.getText()) <= 69){
txt12.setText("C+");
} else if(Double.parseDouble(txt11.getText()) >= 70 && Double.parseDouble(txt11.getText()) <= 74){
txt12.setText("B");
} else if(Double.parseDouble(txt11.getText()) >= 75 && Double.parseDouble(txt11.getText()) <= 79){
txt12.setText("B+");
} else if(Double.parseDouble(txt11.getText()) >= 80 && Double.parseDouble(txt11.getText()) <= 84){
txt12.setText("A");
} else if(Double.parseDouble(txt11.getText()) >= 85){
txt12.setText("A+");
}
这是我继续返回0的方法。
public double getGP(JTextField a){
double b = 0.0;
if(a.getText().equals("A")){
b = 4.0;
} else if(a.getText().equals("B+")){
b = 3.5;
} else if(a.getText().equals("B")){
b = 3.0;
} else if(a.getText().equals("C+")){
b = 2.5;
} else if(a.getText().equals("C")){
b = 2.0;
} else if(a.getText().equals("D")){
b = 1.0;
} else if(a.getText().equals("F")){
b = 0.0;
}
return b;
}
答案 0 :(得分:3)
首先,让我们修复getGP()
。获取文本一次,然后修剪它并在其上调用toUpperCase()
。最后,您可以使用类似
double
public double getGP(JTextField a) {
// Don't forget, this needs to be txt12 (not txt11).
String str = a.getText();
str = (str != null) ? str.trim().toUpperCase() : "";
if (str.equals("A")) {
return 4.0;
} else if (str.equals("B+")) {
return 3.5;
} else if (str.equals("B")) {
return 3.0;
} else if (str.equals("C+")) {
return 2.5;
} else if (str.equals("C")) {
return 2.0;
} else if (str.equals("D")) {
return 1.0;
}
return 0.0;
}
然后我们可以更新您的字母等级代码,通过解析数字一次可以极大地简化它,而其他只会评估前面的if是否为假(所以你可以使用) -
Double val = Double.parseDouble(txt11.getText());
if (val < 50) {
txt12.setText("F");
} else if (val <= 59) {
txt12.setText("D");
} else if (val <= 64) {
txt12.setText("C");
} else if (val <= 69) {
txt12.setText("C+");
} else if (val <= 74) {
txt12.setText("B");
} else if (val <= 79) {
txt12.setText("B+");
} else if (val <= 84) {
txt12.setText("A");
} else {
txt12.setText("A+");
}