【发布时间】:2014-03-23 11:36:10
【问题描述】:
看起来,至少在我习惯的所有语言中,while 循环可以完成for 循环可以做的所有事情,甚至更多。由于我最熟悉 Java,因此我将使用它作为示例:
int foo = 6;
while (foo > 0)
{
this.bar();
foo--;
}
在功能上似乎与
for (int foo = 6; foo > 0; foo--)
this.bar();
在我看来,for 循环在功能上与while 循环相比完全是多余的。我在这里想念什么?编译后,一个比另一个更快或更精简吗?一旦不再需要 foo 计时器,它会自动放弃吗?它们在某些编译器中是否完全相同?
如果它们完全相同,我会感到非常惊讶,因为,你知道,DRY。
我之前看到过类似的问题,但没有人寻求真正详细的答案。
【问题讨论】:
-
我在这里回答了这个问题:stackoverflow.com/questions/21869399/disadvantage-of-for-loop/… 还有一个
while不能比 for 做 更多 的事情,它们是等价的,因为for(;<condition>;)正是一个while(<condition>) -
任何事情,for 循环都可以做,while 循环也可以做,反之亦然。没有“更好”的循环。通常,如果迭代次数在循环开始时是固定的,则使用 for 循环,而在先验未知迭代次数时使用 while 循环。但你不必这样。
标签: java for-loop while-loop