黑马程序员技术交流社区

标题: 关于java如何输入的一个问题 [打印本页]

作者: 雷丹    时间: 2013-10-25 09:14
标题: 关于java如何输入的一个问题
/*
下面的代码我想如果是输入一串数字则停止输入,如果输入的不符合要求就重新输入,但是我发现输入错误之后,该程序就
不给我继续输入的机会了,就不停的死循环了。
*/


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("请输入数字");
}

}

}
}



作者: 枫儿    时间: 2013-10-25 09:39
哥们到底学到哪了 刚提了个集合的问题  我以为你在学集合
作者: Stephen_Chow    时间: 2013-10-25 10:02
很简单呀,在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. }
复制代码

作者: Yuan先生    时间: 2013-10-25 10:09
本帖最后由 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. }
复制代码

作者: To    时间: 2013-10-27 16:07
楼主你好,如果问题已解决请将帖子状态修改为提问结束,
如果未解决请继续追问,谢谢合作
修改方法请看解释帖:http://bbs.itheima.com/thread-89313-1-1.html




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2