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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

如果可以,如何实现就是键盘输入一个数据,如果输入错误,程序不再往下走,返回要求用户重新输入数据。大神,赐教!

2 个回复

倒序浏览
本帖最后由 maralbertlee 于 2014-10-31 14:23 编辑

这个问题我自己解决了,事务回滚不需要框架就OK,我的代码如下:
  1. public void getFirstNumber() {
  2.                 sopln("==============================");
  3.                 sopln("计算器:");
  4.                 sop("请输入第一个数字:");
  5.                 while (true) {
  6.                         sc = new Scanner(System.in);
  7.                         try {
  8.                                 iFirstNum = sc.nextDouble();
  9.                         } catch (InputMismatchException e) {
  10.                                 System.out.println("输入错误,重新输入!");
  11.                                 getFirstNumber();
  12.                         } finally {
  13.                                 //System.out.println("iFirstNum=" + iFirstNum);
  14.                                 break;
  15.                         }
  16.                 }
  17.         }
  18.         public void getOperator(){
  19.                 sopln("请输入运算符号(目前支持+、-、×(*)、÷(/)以及%(取余)运算):");
  20.                 while(true){
  21.                         sc=new Scanner(System.in);
  22.                         cOperator = sc.next().charAt(0);
  23.                         if(cOperator!='+'&&cOperator!='-'&&cOperator!='*'&&cOperator!='/'&&cOperator!='%'){
  24.                                 System.out.println("输入错误,重新输入!");
  25.                                 getOperator();
  26.                                 break;
  27.                         }else{
  28.                                 //System.out.println("cOperator="+cOperator);
  29.                                 break;
  30.                         }
  31.                 }        
  32.         }
复制代码

是不完整代码,但是实现了我的目的——用户输入错误就提示要求重新输入。
但是有个缺点,内存占用比较大,所造成的冗余数据比较多。
回复 使用道具 举报
你可以设置一下判断语句,判断你录入的字符,如果不是你需要的,则抛出RuntimeException异常。

if(xxxxxxxx)
      throw new RuntimeException("输入的字符错误,请从新输入");
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马