3

我在Effective Java中读过一篇关于优先使用For循环而不是循环的文章While
For与循环相比,循环有很多优点While。但是偏爱有什么缺点ForWhile

4

5 回答 5

2

没有缺点。但是对于以下情况,使用 while 循环更为传统

bool condition = false;
while(!condition)
{

}
于 2013-07-01T07:03:03.723 回答
2

45条(在本书的第 2 版中)讨论了变量的范围。为了最小化局部变量的范围,while循环有一个缺点:

boolean condition = false;
while (!condition) {
    // do stuff
}
// Here the variable condition still exists

for循环可以限制可见性

for (boolean condition = false; !condition;) {
    // do stuff
}
// Here the variable condition is out of scope and can be garbage collected

根据这本书,这就是最好的。

于 2013-07-01T07:06:55.383 回答
1

For 循环被广泛使用,并且比 while 循环具有更多优势,但在某些情况下,while 循环是可取的
情况 1.
当您在布尔值上播放时。在这种情况下,如果您使用 for 循环,则明确定义要检查的变量,或者在这种情况下仅使用条件值创建 for 循环,而循环是可取的

Boolean condition = false;
while(!condition)
{
    condition = doSomething();
}

是最好的,然后使用

 Boolean condition = false;
 for(;condition;)
 {
     condition = doSomething();
 }


案例 2.
为了更好地了解和了解。当您使用迭代器时,最好使用 while 循环,它可以更清晰地查看代码。

while (iterator.hasNext()) {
    String string = (String) iterator.next();
}
于 2013-07-01T07:10:20.773 回答
0

for 循环优于 while 循环的主要优点是可读性。For 循环更干净,也更美观。使用while循环陷入无限循环也容易得多。我会说我同意你的知识,如果你可以使用 for 循环,你应该这样做,所以只要你坚持下去,你的编程体验将会更加愉快。

于 2013-07-01T07:04:38.700 回答
0

首先想到的是 for 循环的 JIT 优化更容易,因此更有可能被应用,即如果我们知道循环将执行的次数,那么我们就可以展开它。

关于循环优化和 JIT 的一些讨论

于 2013-07-01T07:31:42.803 回答