java整数不能相加
我正在研究一种方法来计算一个特定学期的平均成绩,我的问题是在添加了条件陈述之后,分数不会添加到tGrade中。删除“if”和“else-if”可以解决我的问题,但会给出错误的输出,所以有没有关于我可能做错了什么的想法
public double computeGPA(ArrayList<Course> courseTaken) {
double cGPA;
int tGrade = 00;
int tUnits = 00;
for (int x=0; x<courseTaken.size(); x++) {
for(int y=1; y<courseTaken.size(); y++) {
if(courseTaken.get(x).getCGrade()>=97) {
courseTaken.get(x).setCGrade(4);
} else if (courseTaken.get(x).getCGrade()>=89 && courseTaken.get(x).getCGrade()<=96) {
courseTaken.get(x).setCGrade(3);
} else if (courseTaken.get(x).getCGrade()>=80 && courseTaken.get(x).getCGrade()<=88) {
courseTaken.get(x).setCGrade(2);
} else if (courseTaken.get(x).getCGrade()>=74 && courseTaken.get(x).getCGrade()<=79) {
courseTaken.get(x).setCGrade(1);
} else {
courseTaken.get(x).setCGrade(0);
}
tGrade = courseTaken.get(x).getCGrade()+courseTaken.get(y).getCGrade();
tUnits = courseTaken.get(x).getCUnits()+courseTaken.get(y).getCUnits();
}
}
cGPA = (tGrade*tUnits)/tUnits;
return cGPA;
}
到目前为止,问题是代码直接转到else语句,破坏了其他语句。此外,数据存储在一个文本文件中,每个对象的分数当然都高于85
# 1 楼答案
为了可读性和效率,我建议查看switch语句,而不是使用大量if语句
例如,如果:
。。。以此类推,您可以只测试一个变量,并检查用例
无论您要测试多少个值。对不起,如果写得不太好,我现在正在打电话
# 2 楼答案
读了几遍之后,我想到了这个。当然这不是最好的方法(重复调用,对于每个循环可能会越来越好),不过我会继续改进