为什么下面用sc。nextint)()的话会有异常,而且有点不能理解为什么下面可以这样
1.下面用sc.nextint(),执行程序会有异常,是为什么呢?我觉得什么也是nextint,应该不冲突吧? 什么原因呢?
2.为什么下面不是 a[i]=sc.next(); 而是直接sc。next? 有什么区别吗?
3.我自己是想i--;就够了, 因为i--; 感觉是重新来一次,但是我发现会陷入死循环,想不明白 为什么不是重新进行一次赋值,上面不是有a[i]=nextint();吗? 我的理解是重新符一次a[i],如果还不是int类型则继续进入下面异常;
2
收起
正在回答 回答被采纳积分+1
1回答
好帮手慕小班
2019-06-16 17:04:53
同学你好,1、使用sc.nextInt()方法,就只能接收int类型的值,当出现e、a等非数字的值时,数据接收错误,就会出现异常!
2、a[i]=sc.next();是将获取到的值赋值给数组下标为i的元素,而sc.next()是获取控制台输入的值,不做任何操作!这里已经进入catch中,说明控制台中的数据并不是int类型的值,所以不能使用nextInt()方法来接收,并且也不需要赋值给数组下标为i元素!
3、这里理解是没有错的,当出现异常时,进入catch中,通过i--;来重新接收这个下标的元素,但是需要有一个方法来接收这个异常的值,如果不接收这个异常的值,就会陷入无限循环中哟!所以i--之前需要有sc.next()方法来接收这个值!
如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
1. Java 零基础入门
- 参与学习 人
- 提交作业 3802 份
- 解答问题 11489 个
本阶段带你迈入Java世界,学习Java必备基础知识,基础语法、面向对象思想以及常用工具类的使用。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星