商品信息添加优化

商品信息添加优化

这边如果价格输入字符串,是相当于整个while语句重新循环一遍,有没有可能在输入价格格式不正确后会保存之前信息,转而继续重新输入商品价格呢?


http://img1.sycdn.imooc.com//climg/6065918509be45ef13610693.jpg


尝试过


try{
goodsPrice = console.nextDouble();
}catch(java.util.InputMismatchException e){
System.out.println("商品价格的格式不正确,请重新输入数值型数据");
console.next();
goodsPrice = console.nextDouble();
}


但是这个有一个问题是,第一次输入错误时候会成功提示,第二次会正常报错,应该如何修改

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

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

2回答
好帮手慕阿满 2021-04-05 11:17:39

同学你好,这里是单独给输入商品价格这一块增加了一个while()循环,如:

http://img1.sycdn.imooc.com//climg/606a80bd09ae38c505970405.jpg

这样如果商品价格不正确,会在商品价格这个循环继续循环,不会输入所有的数据。

如果同学的代码要求输入所有的数据,建议同学将代码贴上来,不要截图,方便我们查看具体问题。

祝学习愉快~

好帮手慕阿慧 2021-04-01 17:52:43

同学你好,同学可以使用循环,当输入正确时退出循环。

例如:

double goodsPrice = 0;
while (true) {
System.out.println("请输入商品价格:");
try {
goodsPrice = console.nextDouble();
break;
} catch (java.util.InputMismatchException e) {
System.out.println("商品价格的格式不正确,请输入数值型数据!");
console.next();
continue;
}
}

http://img1.sycdn.imooc.com//climg/606597d4094d7cde05980402.jpg

祝学习愉快~

  • 提问者 慕工程6786193 #1

    这个continue会直接从新开始本次循环,从新输入这一条所有的数据,而不是单单输入商品价格在这个字段

    2021-04-04 00:19:31
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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