我有一个 while 循环,它检测 sc.hasNext() 是否为真并接受输入的输入列表,将其一一添加到列表 textEditor 中。 while (sc.hasNext()) { String line = sc.nextLine(); if (!(line.isEmpty())){ textEditor.addString(line); } } sc.close(); textEditor.printAll(); }}但是,当我输入字符串列表时,例如onewordtwo wordsHello Worldhello World循环不会停止,并且不会调用 printAll() 方法。如何跳出while循环?
2 回答
泛舟湖上清波郎朗
TA贡献1818条经验 获得超3个赞
语句中没有break,while所以你进入无限循环。
我用一个简单的System.out.println. 看一下新的while条件,当接收到一个空字符串时它会退出while语句:
Scanner sc = new Scanner(System.in);
String line;
while (!(line = sc.nextLine()).isEmpty()) {
System.out.println("Received line : " + line);
//textEditor.addString(line);
}
sc.close();
System.out.println("The end");
慕容3067478
TA贡献1773条经验 获得超3个赞
您可以使用 break 语句跳出循环:
while (sc.hasNextLine()) {
String line = sc.nextLine();
if (!(line.isEmpty())){
textEditor.addString(line);
} else {
break;
}
}
textEditor.printAll();
(顺便说一句,不要关闭标准输出、标准错误或标准输入,即在 Java 中:System.out、System.err 和 System.in)
添加回答
举报
0/150
提交
取消