扫描程序在.nextInt()的第二次抛出NoSuchElementException;

时间:2016-04-03 03:05:13

标签: java java.util.scanner

第一次显示菜单(),我可以输入输入,runGame()可以正常工作。第二次显示菜单时,程序正在使用java.util.NoSuchElementException崩溃到行回答= scanner.nextInt()。似乎没有'nextInt'可以读入,但我没有机会第二次进入它。

public void runGame(){
    int userPick = 0;
    userPick = menu();
    while (userPick != 10){  //user exists with a choice of 10
        switch (userPick){
            case 1: 
                System.out.println("User picked 1");
                break; 
            case 2:
                ...
            default:
               ...
        }
       userPick = menu();
}

public int menu(){
    Scanner scanner = new Scanner(System.in);
    System.out.println("Please choose an integer from 0 - 10(quit)");
    int answer = scanner.nextInt();
    scanner.close();
    return answer; 
}

1 个答案:

答案 0 :(得分:1)

Per,Scanner throws NoSuchElementException on nextInt

当你调用scanner.close()时,它会关闭你的底层流,即System.in;一旦你关闭System.in,唯一的方法是重新启动它。

删除关闭会解决问题。