为了账号安全,请及时绑定邮箱和手机立即绑定

想问一下,下面这段代码会无限循环catch中的语句。

想问一下,下面这段代码会无限循环catch中的语句。

慕雪2708375 2016-08-28 22:10:20
while (1>0){ try { ID1= in.nextInt(); break; } catch(Exception e) { System.out.println("您输入的不是合法的ID,请重新输入,谢谢"); } }我想达到的效果就是,如果输入的不是一个int型,就捕获一个异常并提示用户重新输入,但是实际执行结果是,如果输入了一个错误的id1,就会无限循环catch中的代码,而不会允许再次输入。
查看完整描述

2 回答

?
IT僧

TA贡献14条经验 获得超8个赞

这种简单的判断,其实你可以用if -else判断。捕捉异常占用内存大,用于判断int型,大材小用了。

查看完整回答
反对 回复 2016-08-31
?
慕雪2708375

TA贡献1条经验 获得超0个赞

这个问题百度到了,原因是如果不重置Scanner对象sc将会总在while死循环 try catch,原因是Scanner对象发生异常后就不能再被使用,所以一直报异常,编程了死循环.如:

查看完整回答
反对 回复 2016-08-28
  • 2 回答
  • 0 关注
  • 1464 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信