为了账号安全,请及时绑定邮箱和手机立即绑定

java入门,请各位大神帮忙看看一个问题!

java入门,请各位大神帮忙看看一个问题!

qq_宫湦_03802224 2018-01-09 18:09:45
//想把异常处理加入到"租车系统"的代码中,但是用到的一个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();  } 
查看完整描述

2 回答

?
隔壁老伍丶

TA贡献15条经验 获得超6个赞

你try 中的代码一直会被catch InputMismatchException,然后一直重新跳转执行

查看完整回答
反对 回复 2018-01-12
  • 2 回答
  • 0 关注
  • 969 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信