十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
y = y++;出错,改为y++
创新互联建站主要从事成都网站制作、成都网站设计、外贸营销网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务乌鲁木齐,10多年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18980820575
x = x++;出错。改为x++
区别就是y++ 和++y
你用 while(true)的话,JAVA编译器认为是死循环,后面的
System.out.println(1);无法访问,所以出错
而你用while(bool),编译器并不会取变量bool的值,它是执行时再取的,编译器认为它可能为false的,循环有可能不成立,所以不报错
当某一扫描器抛出 InputMismatchException 时,该扫描器不会传递导致该异常的标记,因此可以通过其他某种方法来获取或跳过它。
这是java API文档中的原话。意思是说,如果nextInt方法没有成功解析出一个整数,那么你的输入不会被忽略。因为它或许能被其它格式解析。
那么你的程序中输入了a后,出现异常,number被赋值100,开始下一次循环,但这时数据缓冲区内你上次输入的a还在,并没有清除,这时继续解析a,还是错误,于是这个过程就一直重复下去了。
现在你要改的是,出现错误把这次的输入清除,只要在catch中,加一句:input.next()就搞定了!