Here is the code:
Scanner fileRead = new Scanner(file); while (fileRead.hasNext()) { score = (fileRead.nextInt()); } if (score >= 90) { gradeA++; scores++; } else if (score >=80) { gradeB++; scores++; } else if (score >= 70) { gradeC++; scores++; } else if (score >= 60) { gradeD++; scores++; } else if (score >= 50) { gradeF++; scores++; } else if (score >100 || score <0) { uCount++; }
I’m supposed to be figuring out the average of scores, while counting how many are in each letter grade. The problem is that it only reads the last number instead of ~80 different numbers.
Advertisement
Answer
Your if-else logic doesn’t get executed until the while loop ends and the entire file has been processed. Meaning, only the last int will be stored into score
.
Moving the closing bracket of the while loop should fix that problem