而对于:什么是最好的?

时间:2014-01-18 16:55:19

标签: c for-loop while-loop cycle

如果我可以使用for和while两个循环,我应该选择哪个?

[用于]

int num = 10;
int i;

for (i=0; i<num; i++)
{
    /* ... */
}

[而]

int num = 10;
int i = num;

while ( i-- )
{
    /* ... */
}

5 个答案:

答案 0 :(得分:7)

forwhile之间的选择只是明确的问题:

K&amp; R.第1章。For Forment:

  

while和for之间的选择是任意的,基于此看来       清晰。 for通常适用于初始化和       增量是单个语句并且逻辑相关,因为它更紧凑       而且它将循环控制语句保存在一个地方。

答案 1 :(得分:2)

当然,性能取决于所用语言的实现。但是,在大多数情况下,对于大多数编译器,两个循环生成的代码几乎都是相同的。

如果您不确切地知道要迭代的次数,则经验法则是使用while。在你的例子中,它没有太大的区别。使用更清楚的东西。

是的,for循环中的声明只允许在较新版本的C(C99)中使用。

答案 2 :(得分:2)

通常,你会使用for循环来做类似的事情,因为你知道之前你开始循环需要循环运行多少次。当您不知道要重复多少次时,while循环会更多,用户输入的内容或某些随机int会改变它

答案 3 :(得分:0)

在上面的示例中,您应该使用for循环,因为它清楚地表达了您的意图。 “做这个循环num次”。此外,编译器可以更简单地优化循环到矢量装配操作。

当你有明显的可表达条件时,你应该使用while循环 “读取行直到EOF”或其他一些没有易于枚举的解决方案。

另外,我认为依靠0为假的事实是不好的做法。你应该清楚地写出退出循环的条件。

答案 4 :(得分:0)

每个程序解决while循环,可以在for循环中解决,但for循环适用于: - 1 - &GT;如果我知道循环将执行多少次,而循环适用于如果我不知道循环将执行多少时间。