关于catch括号里面的sc.next()

关于catch括号里面的sc.next()

在catch里面为什么只用写sc.next()?

为什么不能写sc.nextInt()呢?

为什么在catch里面不需要用a[i]来接收数据呢?

正在回答

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

2回答

同学你好

1、使用sc.nextInt()方法,就只能接收int类型的值,当出现e、a等非数字的值时,数据接收错误,就会出现异常!

2、a[i]=sc.next();是将获取到的值赋值给数组下标为i的元素,而sc.next()是获取控制台输入的值,不做任何操作!这里已经进入catch中,说明控制台中的数据并不是int类型的值,所以不能使用nextInt()方法来接收,并且也不需要赋值给数组下标为i元素!

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

weixin_宝慕林1571821 2020-05-15 21:06:16

  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那个代码块就完成数组的赋值操作了。



  • 提问者 慕仔5998689 #1
    我还是不太明白,为什么在catch里面不可以使用nextInt()? 以及为什么catch出现了异常后要执行的代码不用a[i]来接收数据?
    2020-05-15 21:33:26
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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