我正嘗試在Java中創建一個簡單的GPA計算程序,但是我的邏輯錯誤導致答案不正確。Java GPA邏輯錯誤
我的第一個測試值是87.3%的等級和3的信用值,以及74.2%的等級和3.0的信用等級。我得到4.0的答案,如果我打印gradePointTotal
或應該被命名爲加權信用值,那麼我得到24.0而不是21.0。
public class lab5{
public static void main(String[] args){
double gradeTotal = 0;
double gradeAverage = 0;
double creditValueTotal = 0;
double gradePoint = 0;
double gradePointTotal = 0;
int counter = 1;
Scanner input = new Scanner(System.in);
Scanner input2 = new Scanner(System.in);
String repeat;
do {
System.out.print("Enter a grade: ");
double grade = input.nextDouble();
System.out.print("Enter credit value: ");
double creditValue = input.nextDouble();
System.out.print("Enter Another course ? (YES/NO) ");
repeat = input2.next();
gradeTotal += grade;
gradeAverage = gradeTotal/counter;
creditValueTotal += creditValue;
if (gradeAverage >= 80)
gradePoint = 4.0;
else if (gradeAverage >= 75)
gradePoint = 3.5;
else if (gradeAverage >= 70)
gradePoint = 3.0;
else if (gradeAverage >= 65)
gradePoint = 2.5;
else if (gradeAverage >= 60)
gradePoint = 2.0;
else if (gradeAverage >= 50)
gradePoint = 1.0;
else if (gradeAverage < 50)
gradePoint = 0.0;
gradePointTotal += gradePoint * creditValue;
counter++;
}
while("YES".equalsIgnoreCase(repeat) || "y".equalsIgnoreCase(repeat));
double gradePointAverage = gradePointTotal/creditValueTotal;
System.out.println(gradePointAverage);
}
}
請誠實,並在適當的時候將您的問題標記爲家庭作業。 – vidstige
任何超過80是4.0?我敢肯定,在我的高中,我們必須得到至少90或95 ... –
另外,你不應該需要兩個輸入掃描儀。並且請將您的代碼分解爲更多方法 - 這在發現問題時應該有所幫助。 –