1
System.out.println("How long is the word you would like to guess?");
    while (goodInput==false)
            {
                try
                {
                    wordSize=scan.nextInt();
                    goodInput=true;
                }
                catch(InputMismatchException ime)
                {
                    System.out.println("Thats not a number! Try again");
                }
            }

間違ったタイプの入力が入力された後、コンソールは無限ループで「それは数字ではありません...」を繰り返します。

*編集

私は試した

while(goodInput==false)
        {
            if (scan.hasNextInt())
            {
                wordSize=scan.nextInt();
                goodInput=true;
            }
            else
            {
                System.out.println("Thats not a number! Try again");
            }
        }

これも同じエラーを生成します

4

2 に答える 2

3

非整数が指定された場合、入力を消費することはありません。そのため、入力は何度も渡され、無限ループになります。あなたが使用することができます:

scan.nextLine();

例外ブロックにありますが、使用する方が良いです:

while (scan.hasNextInt() && !goodInput) {
于 2012-12-09T18:03:48.180 に答える
3
 while (goodInput==false) {
      System.out.println("How long is the word you would like to guess?");
      if (scan.hasNextInt()) {
        wordSize=scan.nextInt();
        goodInput=true;
      }
      else scan.next();
  }
于 2012-12-09T18:07:19.630 に答える