0

こんにちは、私はかなり単純なプログラムを持っていますが、実行中に無限ループが発生する理由を理解するのに苦労しています。私が読んでいるファイルには、10個の整数が含まれています。Eclipse Juno を使用していますが、コンソールの出力は 281363 から無限に 1 ずつカウントされます。どうすればこれを修正できますか? 前もって感謝します。

import java.util.*;
import java.io.*;

public class TestScoreAnalyzer
{
public static void main(String[] args) throws FileNotFoundException
{
        int arraySize = 0;

        File file = new File("C:\\Users\\Quinn\\workspace\\CPS121\\src\\
                             additionalAssignments\\scoresSample.txt");
    Scanner inputFile = new Scanner(file);

        while(inputFile.hasNextInt())
    {
    arraySize++;
    System.out.println(arraySize);
    }

    inputFile.close();
}

}

4

2 に答える 2

7

あなたは決して呼び出していませんinputFile.nextInt()-あなたは呼び出しているだけhasNextInt()で、実際にはファイル内の場所を進めません。あなたはおそらく欲しい:

while (inputFile.hasNextInt())
{
    arraySize++;
    System.out.println(arraySize);
    int value = inputFile.nextInt();
    // Do something with the value?
}
于 2012-08-03T07:12:50.150 に答える
0

http://docs.oracle.com/javase/6/docs/api/java/util/Scanner.html#hasNextInt ()

スキャナーは先に進んでいません-次のものはintであると言っているだけです(毎回同じものを調べます)

于 2012-08-03T07:15:02.817 に答える