【发布时间】:2014-10-06 00:41:40
【问题描述】:
我的方法必须向用户请求输入,检查它是否为整数,如果是则返回该整数。我尝试使用 try catch 和 InputMismatchException 进行此操作。
我在循环时遇到了一个问题,如果我输入一个非整数,它会不断吐出“无效输入”“输入一个整数:”而不是实际要求一个。
public int getInteger(){
Scanner i = new Scanner(System.in);
int value = 0;
for(boolean test = false; test == false;){
try{
System.out.println("Enter an integer: ");
value = i.nextInt();
test = true;
return value;
}
catch(InputMismatchException e){System.out.println("Invalid input");}
}
return value;
}
【问题讨论】:
-
通过在 for 循环中启动扫描仪 i 解决了我的问题。
-
MattM - 这是一个糟糕的解决方案。并且不保证能正常工作。
标签: java exception input integer