A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 施家雄 高级黑马   /  2013-3-24 10:52  /  1484 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 施家雄 于 2013-3-24 23:25 编辑
  1.         public static void test()
  2.         {
  3.                 Scanner input=new Scanner(System.in);
  4.                 System.out.print("输入数字");
  5.                 int op;
  6.                
  7.                 while(true){
  8.                         try{
  9.                                 
  10.                                 op=input.nextInt();
  11.                         }
  12.                         catch(InputMismatchException e)
  13.                         {
  14.                                 op=0;
  15.                                 
  16.                         }
  17.                         System.out.println(op);
  18.                         
  19.                 }
  20.         }

  21. 用nextInt方法接受输入int型数据,预防输入其他类型,如double型,字符串型等,去捕获InputMismatchException,但是一输入其他类型,他应该捕获一次啊,然后循环,再次接受数据,即再次执行try代码块,可是他一直执行catch方法块
复制代码

点评

如果问题未解决,请继续追问回复者,如果问题已经解决,请将分类改为“已解决”,谢谢  发表于 2013-3-24 14:02

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

2 个回复

正序浏览
孙宁 发表于 2013-3-24 11:19
输入操作应该在try语句内

谢谢了,早上我做了输入除了int 类型的外都是死循环,没有经过try,直接执行try里面的。一直等于0的死循环。但是晚上做就好了。放到里面和外面都是一样的。
回复 使用道具 举报
  1. public static void test()
  2. {

  3.         int op;
  4.         
  5.         while(true){
  6.                 try{
  7.                     Scanner input=new Scanner(System.in);
  8.                     System.out.print("输入数字");
  9.                         op=input.nextInt();
  10.                 }
  11.                 catch(InputMismatchException e)
  12.                 {
  13.                         op=0;
  14.                         
  15.                 }
  16.                 System.out.println(op);
  17.                
  18.         }
  19. }
  20. }
复制代码
输入操作应该在try语句内

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马