可能重复:
Is “for(;;)” faster than “while (TRUE)”? If not, why do people use it?
我想知道for(;;)
和while(1)
在执行相同功能时有什么区别?编译速度会有什么不同
答案 0 :(得分:9)
与这些不同的是,许多编译器会警告while(true)
(“用作循环表达式的常量表达式”),而我所知道的都不会警告for(;;)
。
但是他们应该生成相同的代码。
答案 1 :(得分:8)
根本没有功能差异,仅仅是品味。
答案 2 :(得分:8)
使用for
,您可以执行此操作:
#define ever (; ;) // note the two happy faces? ;)
for ever { ... } // endless loop
while
无法实现。
答案 3 :(得分:6)
break
被明确调用。答案 4 :(得分:4)
没有区别。我更喜欢后者。
答案 5 :(得分:4)
一个中的6个,另一个中的110个。
后者看起来更简洁。
答案 6 :(得分:0)
没有区别,除非您想稍后使用某种类型的计数器。
for (int i =0; i < 100; i++) {
// some code
}
答案 7 :(得分:0)
两者在C ++中都是相同的。不过,您的帖子标有c#
和c++
。
如果您使用的是C#,则需要使用while (true) {...}
。就个人而言,我更喜欢C ++中的相同:数字仅在处理时才使用......好吧,数字!处理布尔值时,会使用true
和false
。
答案 8 :(得分:0)
它们都定义了完全相同的功能行为,并从C#生成完全相同的IL代码。
答案 9 :(得分:-1)
我老了,我仍然做以下事情:
#define TRUE 1
#define FALSE 0
while (TRUE) { /*--do something, mutley--* }