2014-11-20 4 views
-2

클릭 미끼 제목에 대해 유감스럽게 생각하지만 문제는 아닙니다. 질문을 잃지 않고 말로 바꿀 수는 없습니다.모드 프로그램이 아무 것도 인쇄하지 않는 이유는 무엇입니까?

I이 파일을 선택하여 읽고,이 모드, 그리고 내가 그것을 다있어 생각하지만, 나는 하나 개의 문제

public class ModeFinder 
{ 

    public static int countDoubles(File file) throws FileNotFoundException 
    { 

     Scanner reader = new Scanner(file); 


     int count = 0; 

     while (reader.hasNextDouble()) 
     { 
      count++; 
      reader.nextDouble(); 
     } 

     reader.close(); 
     return count; 
    } 

    public static void main(String args[]) throws FileNotFoundException 
    { 
     String filename; 

     FileDialog filePicker = new FileDialog(new JFrame()); 
     filePicker.setVisible(true); 

     filename = filePicker.getFile(); 
     String folderName = filePicker.getDirectory(); 
     filename = folderName + filename; 
     System.out.println("filename = " +filename); 

     File inputFile = new File(filename); 
     Scanner fileReader = new Scanner (inputFile); 

     int maxValue = 0, 
       maxCount = 0; 
     int[] a = new int[countDoubles(inputFile)]; 

     while (fileReader.hasNextInt()) 
     { 
      for (int i = 0; i < a.length; i++) 
      { 
       int count = 0; 
       for (int j = 0; j < a.length; j++) 
       { 
        if (a[j] == a[i]) 
         count++; 
       } 
       if (count > maxCount) 
       { 
        maxCount = count; 
        maxValue = a[i]; 
       } 
      } 
     } 
     System.out.println("The most common grade is: " +maxValue); 
    } 
} 

마지막 부분을 발견하기위한 것입니다 다음 코드 가장 일반적인 성적은 인쇄되지 않으며 이유를 모르겠습니다.

+1

[] 내용을 채우려는 곳은 무엇입니까? – SMA

+0

전체 파일을 덤프하는 대신 구체적으로 질문하십시오. –

+0

실제로 파일의 번호를 읽어야합니다. 귀하의 메인 루프는 현재 그렇게하지 않습니다. 또한, 당신의 주 루프는'int'에 관한 것이고 count 함수는'double'에 관한 것입니다. 그 불일치는 아무 도움이되지 않습니다. –

답변

1

while 루프가 영원히 반복되도록 파일에서 값을 가져 오기 위해 nextInt를 호출하지 않습니다.

while (fileReader.hasNextInt()) 
    { 
     int value = fileReader.nextInt(); 
     ... 
관련 문제