Here is the code:
JavaScript
x
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