关于sc.close()

关于sc.close()

https://img1.sycdn.imooc.com//climg/64af6aea09cc8d1004780227.jpg

问题1:sc不能重复使用吗,给a赋值完再给b赋值不可以吗?一定要两个sc和sc1吗?


问题2:我用.close()函数避免资源泄漏问题

代码中sc.close();和sc1.close();同时使用出现了程序运行中途中断,并且调试出现以下情况

https://img1.sycdn.imooc.com//climg/64af6bfb0999753404790494.jpg

为什么会出现这种情况,


问题3:为什么我关掉第一个sc.close();后反而可以运行下去;


问题4:这个问题到底应该如何解决,或者说这个程序如何优化

https://img1.sycdn.imooc.com//climg/64af6c6509089beb05190523.jpg

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

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

1回答
好帮手慕小尤 2023-07-13 11:43:32

同学你好,1、是可以的,sc对象是可以重复使用的,并在一个方法中定义一个Scanner对象就可以了。

2、无法继续执行是因同学关闭了Scanner对象。

3、sc.close()不但会关闭Scanner对象,也会同时关闭System.in(标准输入流),这个输入流关闭后其他Scanner就无法继续调用System.in,再次使用时就会出现异常。如果碰到System.in这样的Scanner对象,一般不会去手动关闭。

4、该代码同学定义一个Scanner对象对象就可以了。如下所示:

https://img1.sycdn.imooc.com//climg/64af72a6098975b905120480.jpg

注:关于代码的问题建议同学以复制粘贴的方式进行反馈,便于老师定位问题。

祝学习愉快!

问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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