Scanner scanner = new Scanner();
int number = 1;
do
{
try
{
option = scanner.nextInt();
}
catch (InputMismatchException exception)
{
System.out.println("Integers only, please.");
}
}
while (number != 0);
尽管有异常处理,但当给出非整数输入时,此代码将进入无限循环。代替Scanner
在下一次迭代中暂停收集输入,它只是继续抛出InputMismatchException
s 直到程序被终止。
扫描整数(或我认为的其他类型)输入、丢弃无效输入并正常继续循环的最佳方法是什么?
在尝试将输入的值分配给 int 之前,您应该检查输入是否可以解析为 int。您不应该使用异常来确定输入是否正确,这是不好的做法,应该避免。
if(scanner.hasNextInt()){
option = scanner.nextInt();
}else{
System.out.printLn("your message");
}
通过这种方式,您可以检查输入是否可以解释为 int,如果可以则分配该值,如果不能则显示一条消息。调用该方法不会推进扫描仪。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)