我有一个类似的无限循环:
while(true) {
//do something
}
我希望能够使用一个用于exaple escape键的键来中断循环。我认为它可以使用事件完成,但因为我是java新手,我不能这样做。 谁能帮我?提前谢谢!
在while循环中,程序从usb读取一个值,然后使用套接字通过网络发送它。我的程序是服务器并将字节发送到客户端。我希望能够用密钥停止该服务器!
在while循环中,程序从usb读取一个值,然后使用套接字通过网络发送它。我的程序是服务器并将字节发送到客户端。我希望能够用密钥停止该服务器!
答案 0 :(得分:3)
纯java本身没有键输入的概念。您通常从特定的IO模块(例如,基于控制台,基于AWT,基于Swing等)获取它们。
然后你会检查条件或休息时间。 如果您的新闻通知是异步的,您可能会设置一些标志(例如,breakRequested),并检查此标志并在其更改时中断。
要访问控制台,请查看http://download.oracle.com/javase/6/docs/api/java/io/Console.html 但请注意Stackoverflow上有关此工具的许多问题。
答案 1 :(得分:3)
使用break
关键字。例如:
try {
Console console = new Console();
while(true)
{
String input = console.readLine();
if("quit".equals(input))
{
break;
}
// otherwise do stuff with input
}
catch(IOException e)
{
// handle e
}
许多程序员认为以下内容更具可读性:
try
{
Console console = new Console();
for(String input = console.readLine(); !"quit".equals(input); input = console.readLine())
{
// do stuff with input
}
}
catch(IOException e)
{
// handle e
}
答案 2 :(得分:1)
将(true)更改为while(!isStopped()){...}
之类的内容答案 3 :(得分:0)
请记住,当您的应用程序位于该块中并且正在旋转时,您的应用程序的其他任何部分都无法处理指令。除非您将工作进程分离为新线程并在两者之间共享变量/标志。这样,当按下某个键时,通过捕获它的任何方法,您可以修改一个布尔变量,该变量将转移到您的线程。所以你可以设置你的循环如下:
while(_flag)
{
//Spin
}
答案 4 :(得分:0)
我创建了这个程序,如果按下一个特定的键,它会终止一个无限循环:
class terminator {
public static void main(String args[]) throws java.io.IOException {
char press, clear;
for(;;) {
System.out.print("Press any key to get display, otherwise press t to terminate: ");
press = (char)System.in.read();
System.out.println("You Pressed: "+ press);
do {
clear = (char)System.in.read();
} while(clear != '\n');
System.out.println("\n");
if (press=='t'|press=='T') {
System.out.println("Terminating Program......Program Terminated!");
break;
}
}
}
}
答案 5 :(得分:0)
用条件打破无限循环。
公共课WhileInf {
public static void main(String[] args) {
int i = 0;
while (true) {
if (i == 10) {
break;
}
System.out.println("Hello");
i++;
}
}
}
答案 6 :(得分:-1)
while(true)
{
if( )
{
break;
}
else if()
{
break;
}
else
{
do something;
break;
}
}