2013-10-03 2 views
0

Когда я запускаю это, читатель читает и отображает каждую другую строку. Что я делаю не так?При чтении файла, пытающегося определить действительные оценки, почему читатель файла пропускает строки?

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); 
+1

Это не имеет ничего общего с вашей проблемой, но можете ли вы изменить каждый экземпляр 'imputFile' в своем коде на' inputFile'? – nhgrif

ответ

2

Вы используете imputFile.nextDouble() в цикле дважды:

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

Попробуйте изменить последнюю строку

sum += grade; 

использовать уже считанное значение, а не читать следующий.

+0

Для ясности он говорит о строке в вашем блоке 'else'. – nhgrif

Смежные вопросы