hasNext()这个方法是如果此扫描器的输入中有另一个标记,则返回 true。在等待要扫描的输入时,此方法可能阻塞。扫描器将不执行任何输入。所以循环会一直下去。
你可以设置一个终止符,调用hasNext()的重载方法hasNext(String patten):如果下一个标记与从指定字符串构造的模式匹配,则返回 true。扫描器不执行任何输入。
例:以输入"0",结束输出
Scanner sc = new Scanner(System.in);
while (!sc.hasNext("0")) {
System.out.println(sc.next());
}
图片麻烦重新上传一下吧
你的while循环 能进第一次就能进第二次,第三次,四次。。。。因为你没有终止他的程序代码。所以才会无线循环。除了用重载方法hasNext(String patten),也可以在循环体内break,比如当遇到用户输入‘quit’时终止循环。只是hasNext(String patten)更简便一点。。
报告相同问题?