如何在接受所有输入后跳出 while 循环?
How to break out of while loop after taking in all the inputs?
我有一个 while 循环,它检测 sc.hasNext() 是否为真并接收输入的输入列表,将其一一添加到列表 textEditor。
while (sc.hasNext()) {
String line = sc.nextLine();
if (!(line.isEmpty())){
textEditor.addString(line);
}
}
sc.close();
textEditor.printAll();
}
}
但是,当我输入字符串列表时,例如
oneword
two words
Hello World
hello World
循环没有停止,也没有调用 printAll() 方法。如何跳出 while 循环?
您可以使用 break 语句跳出循环:
while (sc.hasNextLine()) {
String line = sc.nextLine();
if (!(line.isEmpty())){
textEditor.addString(line);
} else {
break;
}
}
textEditor.printAll();
(顺便说一句,不要关闭 Java 中的 stdout、stderr 或 stdin:System.out、System.err 和 System.in)
while
语句中没有 break
,因此进入无限循环。
我用一个简单的 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");
我有一个 while 循环,它检测 sc.hasNext() 是否为真并接收输入的输入列表,将其一一添加到列表 textEditor。
while (sc.hasNext()) {
String line = sc.nextLine();
if (!(line.isEmpty())){
textEditor.addString(line);
}
}
sc.close();
textEditor.printAll();
}
}
但是,当我输入字符串列表时,例如
oneword
two words
Hello World
hello World
循环没有停止,也没有调用 printAll() 方法。如何跳出 while 循环?
您可以使用 break 语句跳出循环:
while (sc.hasNextLine()) {
String line = sc.nextLine();
if (!(line.isEmpty())){
textEditor.addString(line);
} else {
break;
}
}
textEditor.printAll();
(顺便说一句,不要关闭 Java 中的 stdout、stderr 或 stdin:System.out、System.err 和 System.in)
while
语句中没有 break
,因此进入无限循环。
我用一个简单的 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");