手机拍的,电脑无法上网,见谅。
我是这样理解的:创建一个scanner对象,可以重复使用。
但我刚刚写了另一段代码,却出现问题
创建一个整数i和scanner对象,然后输入一个数赋值给i,如果是整数就break退出循环,如果不是整数就抛出异常,再次循环。
但执行后,输入整数就正常,不是整数,会一直死循环“请输入整数”。
但我发现,如果把创建scanner对象这一行放在如图标记中的位置,也就是try里面,结果就正常。
请问这是为什么?难道要重复建立scanner对象?scannner不是可以重复使用的吗?
照你这么写,应该在异常处理中加一句scanner.nextLine().把扫描器的角标引向下一行,另外放到里面是新创建了一个对象的中的输入文本都不是这个新对象的东西了。还有建议异常是用来处理异常的,不是用来处理正常语句的,这个习惯不好。
加一个finally试试