如何安全扫描整数输入? [复制]

2023-12-29

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在下一次迭代中暂停收集输入,它只是继续抛出InputMismatchExceptions 直到程序被终止。

扫描整数(或我认为的其他类型)输入、丢弃无效输入并正常继续循环的最佳方法是什么?


在尝试将输入的值分配给 int 之前,您应该检查输入是否可以解析为 int。您不应该使用异常来确定输入是否正确,这是不好的做法,应该避免。

if(scanner.hasNextInt()){
   option = scanner.nextInt();
}else{
   System.out.printLn("your message");
}

通过这种方式,您可以检查输入是否可以解释为 int,如果可以则分配该值,如果不能则显示一条消息。调用该方法不会推进扫描仪。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何安全扫描整数输入? [复制] 的相关文章

随机推荐