0

したがって、InputMismatchException エラーをキャッチするための現在のコードは次のとおりです。

int weapon = 0
   boolean selection = true;
   while(selection) {
    try {
      System.out.println("Pick number 1, 2, or 3.");
      weapon = scan.nextInt(); 
      selection = false;
    } catch(InputMismatchException e) {
        System.out.println("Choose 1,2,3");
        weapon = scan.nextInt();
      }
   }

int が入力されていることを確認しようとしていますが、それ以外は何も入力されていません。Scanner クラスは既に実装されており、「scan」がその役割を果たします。

ご協力いただきありがとうございます。

4

2 に答える 2

0

まず最初に、目的のint. 例外ハンドラーでその動作を複製する必要はありません。ただし、新しいトークンをスキャンできるようにするために、一致しないトークンをスキャナーから破棄する必要があります

二次的な問題として、selection変数は冗長に見えます。

これはあなたが求めていることをするかもしれません:

int weapon = 0
while(weapon < 1 || weapon > 3) {
    try {
        System.out.println("Pick number 1, 2, or 3.");
        weapon = scan.nextInt(); 
    } catch(InputMismatchException e) {
        //discard the mismatching token
        scan.next();
    }
}
于 2015-04-23T00:32:51.643 に答える