for循环和try.catch语句的搭配使用在输入值时为什么会有问题
for (;;){ try{ int a=input.nextInt(); int b=input.nextInt(); try{ if (a/b>2){ System.out.println("Done!"); break; }else{ System.out.println("please input again"); } } catch(Exception e){ System.out.println("if is wrong"); } } catch(Exception e){ System.out.println("input is wrong"); continue;//加不加不影响 } }
这段代码在执行时,如果输入1和2,则会继续执行;输入2和0,会报错并继续要求输入;但是如果输了1.5之类的违规数字,则会直接无限循环报错"input is wrong"而不是继续要求执行输入。用debug检查发现每次执行到输入就自动跳到最后了。请问为什么?