如果我可以使用for和while两个循环,我应该选择哪个?
[用于]
int num = 10;
int i;
for (i=0; i<num; i++)
{
/* ... */
}
[而]
int num = 10;
int i = num;
while ( i-- )
{
/* ... */
}
答案 0 :(得分:7)
for
和while
之间的选择只是明确的问题:
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;如果我知道循环将执行多少次,而循环适用于如果我不知道循环将执行多少时间。