无限循环应用 - for(;;)

时间:2012-08-12 14:53:25

标签: java syntax for-loop

我试图理解for循环示例背后的概念

for (;;)
{
//write code
}

我理解它的作用以及它是如何与while(true)相同的循环结构,但我的问题是......这是一个很好的编程实践,以及这种类型的循环结构应用于哪种应用程序? / p>

5 个答案:

答案 0 :(得分:3)

在某些情况下,这是理想的行为。例如,基于盒式游戏机的游戏通常在其主循环中没有退出条件,因为没有用于程序退出的操作系统;循环运行直到控制台断电。

另一个例子是模块从另一个模块监听动作。它需要一直听,所以听众必须听无限时间或直到程序关闭。像套接字,线程和UIComponents。

对于无限循环的概念没有不好的做法,但是如果不想要或者偏见你的系统的功能,可以考虑它,比如当你创建一个无意的无限循环或失去循环的程序控制时。 / p>

使无限循环成为一种好习惯:

  1. 确保它是理想的行为。如果它有停止条件,请避免无限循环!
  2. 明确表达for(;;)while(true)。避免表达中的重言式,做到这一点简单!
  3. 使其具有容错能力,挽救预期的例外并给予他们正确的待遇!
  4. 最重要的!制作简单无限循环!

答案 1 :(得分:1)

while(abortRequested)
{
  // ....
}

几乎相当于

while(true)
{
   // ...

   // ... dozens of lines of code ...

   if(abortRequested)
     break;

   // prepare next iteration
}

或者,这也可能在守护程序线程中运行,该守护程序线程在完成所有非守护程序线程时自动终止。所以这些结构的语义一般是:

默认情况下应该保持永久运行,除非收到一些明确的终止事件。

答案 2 :(得分:0)

总的来说没关系,没什么值得担心的。这是程序员的偏好。

我更喜欢while(true),从我的角度来看,它是无限循环的更优雅的形式。其他人可能更喜欢for(;;)方法。

答案 3 :(得分:0)

这只是个人偏好的问题。例如,我更喜欢这种风格:

 while (true) {
     // Do infinite task
 }

这一切都取决于可读性,几个月后你可以轻松阅读和理解。

答案 4 :(得分:0)

一个观点可能是: 虽然更像是基于事件/条件的..在运行循环之前,直到发生了一些终止循环的事情。 另一方面,for循环更像是基于计数器,你想要指定循环发生的次数。至少它有明确的规定。

在技术上,两者都是相同的,它们都检查运行条件以开始循环周期。