【发布时间】:2018-07-31 13:40:48
【问题描述】:
显然,我的真实代码更复杂,但这里有一个例子:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in).useDelimiter("\n");
String[] cmdSplit = null;
while (true) {
while (input.hasNext()) {
cmdSplit = input.next().split("\\s+");
System.out.println("stuff");
}
for (int i = 0; i < cmdSplit.length; i++) System.out.println(cmdSplit[i]);
}
}
}
在上面的示例中,代码从System.in 获取输入,将其拆分,并应输出每一部分。但是,由于某种原因,内部while 循环之后的代码永远不会执行。如果我用if 替换while,它就可以工作。如果你测试它,你会发现它不会无限运行,因为它只打印一次“stuff”,显示循环运行一次。 while 循环有什么问题?
【问题讨论】:
标签: java while-loop