关闭扫描程序会抛出java.util.NoSuchElementException

时间:2013-03-15 02:04:57

标签: java string exception element

我正在用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();
}

当它到达代码中的那一点时我得到:

  

你会做什么?说(战斗)(跑步)(使用物品)
         线程“main”java.util.NoSuchElementException中的异常:找不到行             在java.util.Scanner.nextLine(未知来源)
            在Combat.turnChoice(Combat.java:23)

这个类叫做Combat,我只想让它给出一个打击或跑步或使用物品的选项,我首先尝试的是战斗方法。请帮助,我是Java的新手,所以如果可能的话,不要让事情太复杂。

1 个答案:

答案 0 :(得分:26)

当您使用Scanner中的System.in进行阅读时,不应关闭任何Scanner个实例,因为关闭一个将关闭System.in,当您执行以下操作时,{{ 1}}将被抛出。

NoSuchElementException