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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 雷丹 中级黑马   /  2013-10-25 09:14  /  1194 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

/*
下面的代码我想如果是输入一串数字则停止输入,如果输入的不符合要求就重新输入,但是我发现输入错误之后,该程序就
不给我继续输入的机会了,就不停的死循环了。
*/


package work4;

import java.util.InputMismatchException;
import java.util.Scanner;

public class Test1
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);

System.out.println("请输入你要转化的一串数字");

Long inputNum;

while (false == sc.hasNextLong()) {

try {
inputNum = sc.nextLong();
}
catch (InputMismatchException e) {
e.printStackTrace();
}
finally {
System.out.println("请输入数字");
}

}

}
}


评分

参与人数 1技术分 +1 收起 理由
杨增坤 + 1

查看全部评分

4 个回复

倒序浏览
哥们到底学到哪了 刚提了个集合的问题  我以为你在学集合
回复 使用道具 举报
很简单呀,在finaly里面把原来的sc在清空一下;
在27行添加语句:sc =  new Scanner(System.in);
源码如下:下次发代码要注意格式喽,亲,点击代码按钮发送
  1. /*
  2. 下面的代码我想如果是输入一串数字则停止输入,如果输入的不符合要求就重新输入,但是我发现输入错误之后,该程序就
  3. 不给我继续输入的机会了,就不停的死循环了。
  4. */

  5. import java.util.InputMismatchException;
  6. import java.util.Scanner;

  7. public class Demo6 {
  8.         public static void main(String[] args) {
  9.                 Scanner sc = new Scanner(System.in);

  10.                 System.out.println("请输入你要转化的一串数字");

  11.                 Long inputNum;

  12.                 while (false == sc.hasNextLong()) {

  13.                         try {
  14.                                 inputNum = sc.nextLong();
  15.                         } catch (InputMismatchException e) {
  16.                                 e.printStackTrace();
  17.                         } finally {
  18.                                 System.out.println("请输入数字");
  19.                                 sc =  new Scanner(System.in);
  20.                         }

  21.                 }

  22.         }
  23. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 Yuan先生 于 2013-10-25 10:28 编辑

刚写出来的,你参考一下吧
  1. public class Test1 {
  2.         public static void main(String[] args) {
  3.                 Scanner sc = new Scanner(System.in);
  4.                 System.out.println("请输入你要转化的一串数字");
  5.                 long inputNum;
  6.                 while (true) {
  7.                         if (sc.hasNextLong()) {
  8.                                 inputNum = sc.nextLong();
  9.                                 System.out.println(inputNum);
  10.                                 break;
  11.                         } else {
  12.                                 System.out.println("请输入数字");
  13.                                 sc = new Scanner(System.in);
  14.                         }
  15.                 }
  16.         }
  17. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
To 金牌黑马 2013-10-27 16:07:13
报纸
楼主你好,如果问题已解决请将帖子状态修改为提问结束,
如果未解决请继续追问,谢谢合作
修改方法请看解释帖:http://bbs.itheima.com/thread-89313-1-1.html
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马