gpt4 book ai didi

java - 整数不相加

转载 作者:行者123 更新时间:2023-12-01 06:08:24 26 4
gpt4 key购买 nike

我正在研究一种计算特定学期 GPA 的方法,我的问题是在添加条件语句后,成绩不会添加到 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 语句,从而破坏了其他语句。另外,数据存储在一个文本文件中,并且类(class)的每个对象的成绩都大于 85。

最佳答案

经过一番阅读后,我想到了这一点。当然不是最好的方法(重复调用,for-each 循环可能更好,更多),不过我会继续改进。

public double computeGPA(ArrayList<Course> courseTaken) {
double cGPA;
double tUnits = 00;
double tGrade = 00;

for(int y=0; y<courseTaken.size(); y++) {
tUnits += courseTaken.get(y).getCUnits();
}

for(int x=0; x<courseTaken.size(); x++) {
if(courseTaken.get(x).getCGrade()>=97)
tGrade += courseTaken.get(x).getCUnits()*4;
else if(courseTaken.get(x).getCGrade()>=93 && courseTaken.get(x).getCGrade()<=96)
tGrade += courseTaken.get(x).getCUnits()*3.5;
else if(courseTaken.get(x).getCGrade()>=89 && courseTaken.get(x).getCGrade()<=92)
tGrade += courseTaken.get(x).getCUnits()*3;
else if(courseTaken.get(x).getCGrade()>=85 && courseTaken.get(x).getCGrade()<=88)
tGrade += courseTaken.get(x).getCUnits()*2.5;
else if(courseTaken.get(x).getCGrade()>=80 && courseTaken.get(x).getCGrade()<=84)
tGrade += courseTaken.get(x).getCUnits()*2;
else if(courseTaken.get(x).getCGrade()>=75 && courseTaken.get(x).getCGrade()<=79)
tGrade += courseTaken.get(x).getCUnits()*1.5;
else if(courseTaken.get(x).getCGrade()>=70 && courseTaken.get(x).getCGrade()<=74)
tGrade += courseTaken.get(x).getCUnits()*1;
else
tGrade += courseTaken.get(x).getCUnits()*0;

}
cGPA = tGrade/tUnits;

return cGPA;
}//computeGPA

关于java - 整数不相加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39962594/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com