为了账号安全,请及时绑定邮箱和手机立即绑定

输入不是只执行一次,scanner并没有在循环里面,怎么会一直接收控制端舒服数据的?

输入不是只执行一次,scanner并没有在循环里面,怎么会一直接收控制端舒服数据的?

正在回答

3 回答

http://img1.sycdn.imooc.com//59019a53000121c304820279.jpg

准确来说应该是Scanner对象只有一个,但接收输入靠的是next()方法。我将代码改成这样之后,必须执行三次输入后,程序才结束。楼上那位说的大概就是那个意思,一直接收控制台数据输入的原因就是scan.next()在死循环中。

0 回复 有任何疑惑可以回复我~
#1

慕粉1556379847 提问者

这样说,接收输入靠的是next()方法,那么将程序中while()循环中的ture改成scan.hasnext()时,还怎么进入循环呢?
2017-04-27 回复 有任何疑惑可以回复我~

我刚刚也是这个疑惑,特地去实验了一下,发现创建Scanner变量时并不会等待接受输入,而是在使用scan.next()的时候触发的。http://img1.sycdn.imooc.com//590161d600012d4703740081.jpg

0 回复 有任何疑惑可以回复我~
#1

慕粉1556379847 提问者

就是说,实际上接收输入对象的是scanner.next()
2017-04-27 回复 有任何疑惑可以回复我~

这个不是scan在运行,是你while循环里面输出的语句一直在执行,输出的语句中包涵接收控制台的功能

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

输入不是只执行一次,scanner并没有在循环里面,怎么会一直接收控制端舒服数据的?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信