首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么使用for循环而不是while循环?

为什么使用for循环而不是while循环?
EN

Stack Overflow用户
提问于 2010-10-07 01:11:04
回答 28查看 66K关注 0票数 66

可能的重复项:

Iterate with for loop or while loop?

Loops in C - for() or while() - which is BEST?

什么时候应该使用for循环而不是while循环?

我认为以下循环是相同的,除了它们的语法。如果是这样,那么为什么选择一个而不是另一个呢?

代码语言:javascript
复制
int i;
for (i = 0; i < arr.length; i++) {
  // do work
}

int i = 0;
while (i < arr.length) {
  // do work
  i++;
}
EN

回答 28

Stack Overflow用户

回答已采纳

发布于 2010-10-07 01:14:50

在您的例子中,除了在for循环中少了一行代码之外,您不会获得太多好处。

但是,如果您像这样声明循环:

代码语言:javascript
复制
for(int i = 0; i < x; i++)

您设法将i保持在循环的作用域内,而不是让它逃逸到代码的其余部分。

此外,在while循环中,变量声明、条件和增量位于3个不同的位置。使用for循环,所有内容都放在一个方便、易读的地方。

最后的想法:

还有一个重要的注意事项。这两者之间存在语义上的差异。而循环,一般来说,意味着有无限的迭代次数。(即直到文件被read..no (不管其中有多少行),for循环应该有一个更确定的迭代次数。(循环遍历集合中的所有元素,我们可以根据集合的大小对其进行计数。)

票数 104
EN

Stack Overflow用户

发布于 2010-10-07 01:14:15

选择for而不是while有一个原因:可读性。

通过使用for循环,您明确表示您的意图是执行某种类型的操作,这些操作需要初始化、“步骤”操作和完成条件。

另一方面,对于while,您只是说您需要完成条件。

票数 86
EN

Stack Overflow用户

发布于 2010-10-07 01:14:09

当我不一定需要计数器时,我使用'while‘,例如,当你正在读取一个文件,并且你正在等待访问EOF时。在这种情况下,'for‘可能不是最好的选择。当你遍历数组中的项时,我更喜欢使用'for‘,因为它能更好地表达意图。

票数 37
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3875114

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档