scanner的next()方法为什么输入整数也不报错,如何让它报错呢?

scanner的next()方法为什么输入整数也不报错,如何让它报错呢?

请输入对应的数字对购物车进行管理

1

添加商品到购物车

所有商品信息:

商品信息[商品编号:goods004,商品名称:手机,商品价格:2300.0,商品描述:android手机]

商品信息[商品编号:goods002,商品名称:饮水机,商品价格:299.0,商品描述:带净化功能的饮水机]

商品信息[商品编号:goods003,商品名称:笔记本电脑,商品价格:4999.0,商品描述:15寸笔记本电脑]

商品信息[商品编号:goods001,商品名称:水杯,商品价格:56.0,商品描述:不锈钢水杯]

请输入要添加的商品编号:

2

请输入要添加的商品数量:


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

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

1回答
好帮手慕小班 2019-04-25 16:36:31

同学你好,1、不报错的原因是:当你输入一个整数时,next()方法会在输入有效字符(也就是整数)之后,将其以字符串的形式展示出来,所以输入整数程序也不会报错。

2、next()方法一定要读取到有效的字符后才结束输入,对输入有效字符前遇到的空格键,Tab键,Enter键等,next()会自动将其去掉,只有在输入有效字符之后,next()方法才将其后的空格键,Tab键,Enter等视为分隔符或者结束符。所以返回值为String类型的next()方法不会报错。

3、如果要让从键盘接收数据的方法报错,可以使用Scanner.nextInt()等具体类型方法,只要输入一个其他类型,程序就会报错。

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


  • 提问者 精慕门6133161 #1
    但是我就要是输入商品编号,goods004这样的字符串格式,用nextIn不行啊,本来我就不允许整数输入,您还是没有解答怎么样实现输入整数报错的问题
    2019-04-26 15:27:35
  • 好帮手慕小班 回复 提问者 精慕门6133161 #2
    同学你好,如果要输入goods004这样的字符串格式,可以使用sc.next();方法来获取字符串,例如:String no; no = sc.next(); 同学用nextInt()方法来接收goods004这样字符串数据,是会报错的哦! 如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
    2019-04-26 15:47:26
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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