scan.hasNextInt在第一次调用时等待输入,但在第二次调用时不等待

时间:2014-09-12 01:59:08

标签: java java.util.scanner

我有一个方法允许用户从菜单中选择,scan.hasNextInt在我第一次调用它时等待输入但是如果我再次调用它,则scan.hasNextInt不会等待输入。以下代码的输出是: 输入一个数字。 1 离开 选择= 1 输入第二个号码 没有输入 离开 选择= 0

任何帮助都将不胜感激。

public static void main(String[] args) {
    // TODO Auto-generated method stub
    System.out.println("Enter a number.");
    int choice=menuChoice(3);
    System.out.println("choice = "+choice);
    System.out.println("Enter a 2nd number");
    choice=menuChoice(3);
    System.out.println("choice = "+choice);
    }

private static int menuChoice(int menuItemCount){
    Boolean inputAccepted=false;
    Scanner scan = new Scanner(System.in);
    int choice=0;
        if(scan.hasNextInt()){
            choice=scan.nextInt();
            scan.nextLine();
            inputAccepted=true;
        }else{
            System.out.println("No Input");
        }
    scan.close();
    System.out.println("leaving");
    return choice;
} 

1 个答案:

答案 0 :(得分:0)

我发现你不应该关闭指向System.in的扫描程序。当我取下关闭时问题就消失了。