Ale*_*ian 1 java java.util.scanner
该程序在循环中进入无限循环.拜托,有人可以告诉我为什么吗?
import java.util.Scanner;
public class program {
public static void main(String[] pars) {
System.out.println("Insert something.");
Scanner read = new Scanner(System.in);
String s = "";
while(read.hasNext()) {
System.out.println(read.next());
}
System.out.println("End of program");
}
}
Run Code Online (Sandbox Code Playgroud)
阅读Javadoc Scanner#hasNext():
如果此扫描器的输入中有另一个标记,则返回true.在等待输入扫描时,此方法可能会阻塞.扫描仪不会超过任何输入.
因此while,每次等待来自用户的输入时,循环将始终在您的情况下执行.由于Scanner链接到System.in,输入流将始终阻塞,直到用户输入字符串并hasNext()始终返回true,除非用户发出文件结束信号(例如通过Windows上的Ctrl+ z组合).Scanner#hasNext()从已知输入大小的文件读取并且文件末尾标记流的结尾时更方便.
结束循环的一种方法是在输入上添加一个条件:
while (read.hasNext()) {
s = read.next();
if(s.equals("quit")) {
break;
}
System.out.println(s);
}
Run Code Online (Sandbox Code Playgroud)
PS:命名以大写字母开头的类更常规.
| 归档时间: |
|
| 查看次数: |
89 次 |
| 最近记录: |