0

これを実行すると、リーダーは 1 行おきに読み取り、表示するだけです。私は何を間違っていますか?

while (imputFile.hasNext()) {
            grade = imputFile.nextDouble();
            System.out.println(grade);
            if (grade < 0 || grade > 100)
                System.out.print("Grade " + grade + " was invalid and ignored");
            else {
                numberOfGrades++;
                sum += imputFile.nextDouble();
            }
        }
    averageGrade = sum/numberOfGrades;
    System.out.println("There were "+ numberOfGrades + " valid grades.");
    System.out.printf("%3.2f",averageGrade);
4

1 に答える 1

2

imputFile.nextDouble()ループで2回使用しています:

grade = imputFile.nextDouble();
//....
sum += imputFile.nextDouble();

最後の行を次のように変更してみてください

sum += grade;

次の値を読み取るのではなく、既に読み取った値を使用します。

于 2013-10-03T23:51:02.923 に答える