try-catch捕捉异常重新输入疑问

来源:1-1 综合案例需求

hor5

2022-08-02 15:45:31

问题描述:

老师,您好!try-catch捕捉数据类型不符的异常,catch里处理错误重新输入为什么不能用nextInt()方法而是next()方法?而我要求输入的数据类型是整型int又不是字符串string。另外还有一点疑问就是为什么重新调用Scanner对象不需要赋给变量?否则程序怎么指定该变量重新输入判定。


相关截图:

https://img.mukewang.com/climg/62e8d6160946599d10090645.jpg

写回答

1回答

好帮手慕小黑

2022-08-02

同学你好,当Scanner接收到数据时,会对数据进行验证,如果数据类型接收不匹配,会直接抛出异常而不处理该数据,并且该数据是不会被内存所丢弃,会一直保存到内存中,直到程序运行结束,才会被内存丢弃,或者该数据被其他方法所接收从而消耗掉,而sc.next方法会接收到String类型的数据,即任何数据都会被接收,并且不会报错。

综上所述myScanner.next();只是用来消耗数据的,同学可以使用nextInt方法重新输入。

祝学习愉快!

0
hor5
hp>我明白了,谢谢老师!

h022-08-02
共1条回复

0 学习 · 9886 问题

查看课程