while (scanner.hasNext()) 和while(true)的区别

在做题时发现 while (scanner.hasNext()) {}这样循环的 ,我换成while(true)也是可以的,两者区别是什么?发现很多人都用 while (scanner.hasNext()) 。

阅读 5.7k
3 个回答

hasNext就是还有下一个啊,one by one,接着是下一个,遍历完了就停止;while(true)如果条件跳不出,就是死循环啊。

读文件时,前者读完就结束,后者则死循环

补充楼上的,你在控制台的scanner,它会等待你输入东西,循环检测你是否输入的东西,你一输入东西就被检测到了,然后执行while里面的代码,执行完后继续检测,等待直到你下一次输入东西;while(true)就不说了,不会去检测条件,无脑的不停的循环循环,执行到一定次数的时候你的Java虚拟机内存就不够了,直接爆掉

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题