1
while (!s.hasNextDouble())
{
System.out.println("not a value" );
    s.nextDouble();

}

sum = min = max = next = s.nextDouble();    

for (loop follows to decide min and max and average) 

これを実行すると、スレッド"main"java.util.InputMismatchExceptionでスキャナー例外が発生するのはなぜですか。私はAPIを調べましたが、正しく実行していると思います。System.outの後にs.nextDouble()を配置しない場合、ループは正常に実行されますが、s.nextDouble();と入力するとすぐに実行されます。プログラムがクラッシュします。

4

1 に答える 1

3

Double読むものがないのに、しばらく読み込もうとしています。試す:

while (!s.hasNextDouble())
{
    System.out.println("not a value" );
    s.next();
}
min = max = etc = s.nextDouble();
于 2012-11-19T21:38:55.863 に答える