问答详情
源自:1-5 Java 中的异常抛出以及自定义异常

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

提问者:懒秋茵 2015-06-27 20:40

个回答

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

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