2013-10-03 1 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