为什么使用无限循环?

Moi*_*vin 8 c++ coding-style

另一张海报询问了无限循环的首选语法.

后续问题:为什么在代码中使用无限循环?我通常会看到这样的结构:

for (;;) {
  int scoped_variable = getSomeValue();
  if (scoped_variable == some_value) {
    break;
  }
}
Run Code Online (Sandbox Code Playgroud)

这让你无法在foror while子句中看到scoped_variable的值."无限"循环有哪些其他用途?

Ton*_*yer 27

循环如:

while (true)
{
    // do something
    if (something else) break;
    // do more
}
Run Code Online (Sandbox Code Playgroud)

让你跳出中间的循环,而不是在开始时(while/for)或结束(do-while).

如果您遇到了复杂的情况,您可能还希望使用此样式来使代码更清晰.

  • FWIW,我也更喜欢"while(true)"或"while(1)"到"for(;;)".更容易阅读,IMO. (2认同)

ASh*_*lly 11

我对嵌入式控制代码的主体使用无限循环,因为它设计为一​​旦启动就永远运行.


Ign*_*ams 8

有限状态机.它们不应该在你达到最终状态之前结束,此时你会破坏或返回.

  • 它不一定非常清楚,特别是如果你想在循环中的特定点测试`machine.state`变量. (2认同)

Men*_*boy 8

while( 1 )
{
    game->update();
    game->render();
}
Run Code Online (Sandbox Code Playgroud)

编辑:也就是说,我的应用程序基本上是基于一个无限循环,我不能为重构所有东西而烦恼,只是为了让审美纯度始终通过从main()的末尾掉落而终止.