关于价格输入格式不正确的问题

关于价格输入格式不正确的问题

老师,对于价格输入格式不正确的问题,那种方法能让我们重新输入一次,但是如果我确认商品编号和名字都没有错,只是价格不小心输错了,我只想重新输入价格而不是再把商品编号和名字再输一遍,应该咋处理?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
好帮手慕阿园 2020-09-04 15:48:19

同学你好,并不会哦,如果输入正确,程序会继续向下运行,商品信息输入完毕后,将商品信息添加到HashMap中,结束该循环,然后继续输入下一个商品信息,如下,输入正确会执行的代码

http://img1.sycdn.imooc.com//climg/5f51f0d009aad1a206510359.jpg

同学也可以自己动手写一遍试试哦~

祝学习愉快

好帮手慕阿园 2020-09-04 11:47:32

同学你好,可以给输入价格的代码也添加一个while循环,输入错误后,重新执行该循环,继续输入价格

,直到输入正确再继续执行程序,代码如下

while (i < 3) {
   System.out.println("请输入第" + (i + 1) + "条商品信息:");
   System.out.println("请输入商品编号:");
   goodsId = console.next();
   // 判断商品编号id是否存在
   if (goodsMap.containsKey(goodsId)) {
      System.out.println("该商品编号已经存在!请重新输入!");
      continue;
   }
   System.out.println("请输入商品名称:");
   goodsName = console.next();
   //添加循环
   while (true) {
      System.out.println("请输入商品价格:");
      double goodsPrice = 0;
      try {
         goodsPrice = console.nextDouble();
      } catch (java.util.InputMismatchException e) {
         System.out.println("商品价格的格式不正确,请输入数值型数据!");
         console.next();
         //输入错误,再次执行此循环,直到输入正确
         continue;
      }
      Goods goods = new Goods(goodsId, goodsName, goodsPrice);
      // 将商品信息添加到HashMap中
      goodsMap.put(goodsId, goods);
      i++;
      //输入正确,将商品信息添加到map中,使用break结束里面的循环,继续执行整体的循环
      break;
   }
}

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!


  • 提问者 慕函数1428092 #1
    这个是不是应该在goodsPrice = console.nextDouble();后面加上break;,不然的话貌似重新输入正确还是会一直让你循环输入?
    2020-09-04 14:48:32
  • BruceLeeJ 回复 提问者 慕函数1428092 #2
    它会执行到最后呢,最后面有个 break.前面那里就不用了。
    2020-09-10 17:52:34
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师