//想把异常处理加入到"租车系统"的代码中,但是用到的一个break-label跳转却进入了死循环。百思不得其解,望大神解惑。 public static void main(String[] args) { Scanner input=new Scanner(System.in); System.out.println("请问您是否要租车?"); System.out.println("1、是 2、否"); int confirm=input.nextInt(); for(int i=1;i>0;i++){ if(confirm==2) { System.out.println("答答租车系统已退出,感谢您的使用!"); break; }else if(confirm==1) { reselect: //设置标签。 { try { System.out.println("请选择您要租赁的车辆类型:"); System.out.println("1、汽车 2、货车 3、皮卡"); int type=input.nextInt(); for(int a=1;a>0;a++){ if(type==1) { Car car=new Car(); //此处及以下调用的几个类代码均未贴出。 car.getType(); car.show(); break; }else if(type==2) { Truck truck=new Truck(); truck.getType(); truck.show(); break; }else if(type==3) { Pickup pickup=new Pickup(); pickup.getBrand(); pickup.show(); break; }else { System.out.println("您的输入有误!请选择您要租赁的车辆类型:"); System.out.println("1、汽车 2、货车 3、皮卡"); type=input.nextInt(); } } }catch(InputMismatchException ime) { break reselect; //【就是这里】,此处break跳转后为什么会进入死循环? } for(int b=1;b>0;b++){ System.out.println("确认吗?(是Y/否N)"); String conFinal=input.next(); if(conFinal.equals("Y")) { System.out.println("您已预订成功!"); break; }else if(conFinal.equals("N")) { break reselect; //此处break-label运行正常。 }else{ System.out.println("您的输入有误!"); continue; } } break; } }else{ System.out.println("您的输入有误!请问您是否要租车?"); System.out.println("1、是 2、否"); confirm=input.nextInt(); } } input.close(); }
隔壁老伍丶
相关分类