for(;;)这是一个无限循环?

Dee*_*kor 2 c++

最近在进行c ++教程时,我遇到了一个如下所示的for循环:

for (;;){
   //Do stuff
}
Run Code Online (Sandbox Code Playgroud)

这是一个无限循环吗?我为什么要用这个while(1)呢?

pad*_*ddy 8

是的,这是无限的.传统上,编译器会在您使用时生成警告while(1),但在您使用时则不会for(;;).我不知道是否仍然如此.


Jam*_*nze 5

这是一个无限循环.更确切地说,如果a中的条件for为空,则考虑它true.至于while ( true )vs .:for (;;)历史上for (;;)是惯用的形式(由Kernighan和Ritchie使用),也许部分是因为早期的C没有布尔.使用while ( 1 )不会在我工作的任何地方通过代码审查.使用布尔值,while ( true )看起来肯定比直观for (;;),但while ( 1 )令人困惑.但在预布尔时代,每个人都有#definetrueTRUE或一些这样的,所以这是一个薄弱的论据.最后,如果你是一个老C程序员,像我一样,最初是从Kernighan和Ritchie那里学到的,你只是本能地使用它for (;;).否则......它可能取决于你学习C++的位置和对象.

当然,在工作时,你遵循房屋惯例,它们是什么.