关于catch括号里面的sc.next()
在catch里面为什么只用写sc.next()?
为什么不能写sc.nextInt()呢?
为什么在catch里面不需要用a[i]来接收数据呢?
正在回答
同学你好
1、使用sc.nextInt()方法,就只能接收int类型的值,当出现e、a等非数字的值时,数据接收错误,就会出现异常!
2、a[i]=sc.next();是将获取到的值赋值给数组下标为i的元素,而sc.next()是获取控制台输入的值,不做任何操作!这里已经进入catch中,说明控制台中的数据并不是int类型的值,所以不能使用nextInt()方法来接收,并且也不需要赋值给数组下标为i元素!
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
try {
可能出现异常的代码
} catch(异常类名A e){
如果出现了异常类A类型的异常,那么执行该代码
} ...(catch可以有多个)
代码执行的顺序:
* 1.try内的代码从出现异常的那一行开始,中断执行
* 2.执行对应的catch块内的代码
* 3.继续执行try catch结构之后的代码
因为你输入字符串a不是int类型数据,也就是出现了异常,所以执行catch代码块里面的代码,然后要处理你输入的这个a的字符串,所以需要sc.next()这个代码来“接收”你输入的字符串a(例如:如果输入的是2.0这种浮点型数字,你就需要变成sc.nextDouble()来“接收”这个异常输入的数据)
catch出现了异常后要执行的代码所以不用a[i]来接收数据,正常输入复合要求的数据直接在try那个代码块就完成数组的赋值操作了。
- 参与学习 人
- 提交作业 9393 份
- 解答问题 16556 个
综合就业常年第一,编程排行常年霸榜,无需脱产即可学习,北上广深月薪过万 无论你是未就业的学生还是想转行的在职人员,不需要基础,只要你有梦想,想高薪
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星