for循环和try.catch语句的搭配使用在输入值时为什么会有问题

来源:1-5 Java 中的异常抛出以及自定义异常

懒秋茵

2015-06-27 20:40

		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检查发现每次执行到输入就自动跳到最后了。请问为什么?

写回答 关注

1回答

  • 懒秋茵
    2015-06-29 20:23:48

    自己已经解决,需要将Scanner input=new Scanner(System.in);放到try里面才行,不然input已经是定值了

Java入门第三季

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

409792 学习 · 4340 问题

查看课程

相似问题