8

私はJavaでRPG戦闘システムをゼロから書いています、野心的ですよね?さて、私はいくつかの問題を抱えています。これは私のコードです:

void turnChoice() {
    System.out.println("What will you do? Say (Fight) (Run) (Use Item)");
    Scanner turnChoice = new Scanner(System.in);
    switch (turnChoice.nextLine()) {
        case ("Fight"):
            Combat fighting = new Combat();
            fighting.fight();
        default:
    }

    turnChoice.close();
}

それがコードのそのポイントに達すると、私は次のようになります。

あなたは何をしますか?Say(Fight)(Run)(Use Item)
スレッド "main"の例外java.util.NoSuchElementException: Combat.turnChoice(Combat.java:23)
のjava.util.Scanner.nextLine(不明なソース)に行が見つかりません

このクラスはCombatと呼ばれ、アイテムを戦うか、実行するか、使用するかを選択できるようにしたいだけです。最初は、fightメソッドだけを試しています。助けてください、私はJavaに少し慣れていないので、可能であれば物事をあまり複雑にしないでください。

4

1 に答える 1

27

Scannerfromを使用して読み取りを行っている場合は、インスタンスSystem.inを閉じないでください。Scannerインスタンスを閉じると閉じられSystem.in、次の操作をNoSuchElementException行うとスローされます。

Scanner sc1 = new Scanner(System.in);
String str = sc1.nextLine();
...
sc1.close();
...
...
Scanner sc2 = new Scanner(System.in);
String newStr = sc2.nextLine();      // Exception!
于 2013-03-15T03:09:09.797 に答える