如果您输入无效的数字,则会陷入无休止的循环,因为无效的令牌仍留在流中,并且
nextInt()不断尝试以获取它。
您将不得不获得数据流。
您可以做的一件事是
nextLine()改为使用,然后显式尝试将返回的内容解析
String为整数(例如使用
Integer.parseInt())。
您可以做的另一件事是在异常处理程序中调用
input.next()(或
input.nextLine())以读取(并丢弃)垃圾输入。如果默认设置不能满足您的要求,则可能需要调整
Scanner定界符才能
next()为您工作。



