站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2SE 专题请教:这段代码为什么不会退出?

请教:这段代码为什么不会退出?

摘要: 请教:这段代码为什么不会退出?


public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (scanner.hasNext()) {
System.out.println(scanner.next());
}
System.out.println("Exiting...");
}
看论坛里面一个帖子用了Scanner这个类,想用一下,发现了一个问题,就是当循环结束时,没有执行后面的那条打印Exiting的语句,也就是说程序没有从循环中退出,可是实际上我输入的字符串已经解析完了,不知道为什么,请教各位.


楼主的代码编译都过不了啊


Scanner 代码呢


这个程序的结果是在控制台输入字符串,然后控制台紧跟着输出该字符串,
因为没有打破while循环的语句,所以不会停下来
可以在while里加一个if 语句,当输入特定的字符串时break


这个代码是可以退出的。

但是你要注意,你输入文本然后回车并不意味着System.in已经结束,所以scanner.hasNext()==true

如果你回车以后按下Ctrl+Z再回车,这样就意味着System.in结束,你的程序就会退出了。


承蒙高手指点,感激不尽.


↑返回目录
前一篇: 关于命令行参数的小问题
后一篇: Pattern 类问题