我有一个方法允许用户从菜单中选择,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;
}
答案 0 :(得分:0)
我发现你不应该关闭指向System.in的扫描程序。当我取下关闭时问题就消失了。