3

我现在忘记了在哪里,但我在某个地方读到for(;;){...}了和说一样的东西while(1){...}这个答案证实了这是真的,并解释了为什么会for(;;)起作用。但是,它没有详细说明它为什么有用,而且我似乎找不到空for循环而不是循环的任何基准while

它相当令人困惑(尽管公认非常聪明),但它短。Google 的 Closure Compiler 转换while(true)为空的 for 循环,所以一定是有原因的。

tl;博士:为什么我应该在循环上使用空的 forwhile(1)循环?

4

2 回答 2

7

打字更短。这真的是唯一的原因。很多人都是这样编程长大的,这是一个习惯问题。

我依稀记得有一个时间和语言for(;;)更快。但这在过去大体上都是过去的,现在有任何半体面的优化编译器/解释器。

于 2012-06-01T02:51:02.773 回答
3

它稍微更惯用,大概是因为它的打字时间更短,而且在那个时代,它比代码可读性更重要。我读过的软件工程书籍for(;;)比 更容易跳出意味着“无限循环” while(1),所以如果这是一个约定,最好坚持下去。不过,这绝不是一个强大的约定,它们在我能想到的任何方面在技术上都是等效的。

于 2012-06-01T02:59:47.340 回答