.hasNext上の無限ループ()

ガブリエルコロン:

私は、ファイルを読み込み、最大の番号を抽出しようとしています。私は最後までファイルを読みたいけどのhasNext()が真の私に与え続けています。私はhasNextInt()にこれを変更しようとしたときに、それも私の文字どこ整数に行ったことがありません。どのように私は、ループから抜け出すことができ、正しく私の整数を読みますか?ヘルプははるかに高く評価されるだろう。

int maxScore=0;
        int score = 0;
        Scanner scan = new Scanner("PacManHighScore");
        while(scan.hasNext()) {
            if(scan.hasNextInt()) {
                score = scan.nextInt();
            }
            System.out.println(score);
            if(score > maxScore) {
                maxScore = score;
            }
        }
        scan.close();

Anubv:

あなたは無限ループで立ち往生しているように、非int型の値をスキップするのを忘れています。

以下のコードを試してみてください。

int maxScore=0;
int score = 0;
Scanner scan = new Scanner("PacManHighScore");
while(scan.hasNext()) {
    if(scan.hasNextInt()) {
        score = scan.nextInt();
    }else{
        scan.next();
    }
    System.out.println(score);
    if(score > maxScore) {
        maxScore = score;
    }
}
scan.close();

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=296681&siteId=1