-2

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

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

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

提前致谢!

4

5 回答 5

1

someFunction 可以是布尔值吗?如果是这样

if (someFunction()) break;
于 2013-06-01T16:54:11.433 回答
1

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

1:

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

2:

while(true)
{
    if(userDoesntWantToKeepGoing) break;
    someFunction();
    Thread.sleep(4000);
}
于 2013-06-01T16:55:16.037 回答
0

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

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

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

Someclass.staticVariable = false;
于 2013-06-01T16:54:37.453 回答
0

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

while(globalFlag)
{
   someFunction();
   Thread.sleep(4000);
}
于 2013-06-01T16:55:33.537 回答
0

查看break语句。

看看这个SO q/a。

于 2013-06-01T16:56:24.857 回答