打破无限循环

时间:2013-06-01 16:52:25

标签: java infinite-loop

我需要运行一个无限循环,直到用户告诉它中断。例如......

while(true)
{
   someFunction();
   Thread.sleep(4000);
}

如您所见,我希望每4秒钟连续运行一次该功能。但是当我希望它停止时,我该如何摆脱循环呢?

提前致谢!

5 个答案:

答案 0 :(得分:1)

someFunction可以是布尔值吗?如果是的话

if (someFunction()) break;

答案 1 :(得分:1)

你有两个选择,你可以使用break;或者为你的while循环添加一个布尔值

1:

while(userWantsToKeppGoing)
{
    someFunction();
    Thread.sleep(4000);
}

2:

while(true)
{
    if(userDoesntWantToKeepGoing) break;
    someFunction();
    Thread.sleep(4000);
}

答案 2 :(得分:0)

在while中使用静态volatile变量,并在想要停止线程时从其他线程设置它:

while(Someclass.staticVariable)
{
   someFunction();
   Thread.sleep(4000);
}

从另一个线程来打破这个循环

Someclass.staticVariable = false;

答案 3 :(得分:0)

您可以使用全局布尔变量作为标志,someFunction()可以更改,并执行以下操作:

while(globalFlag)
{
   someFunction();
   Thread.sleep(4000);
}

答案 4 :(得分:0)

查看中断语句。

查看 this SO q / a。