我在Effective Java中读过一篇关于偏好For
循环到While
循环的文章。
For
循环比While
循环有很多优点。但是,首选For
到While
是否有任何缺点?
答案 0 :(得分:2)
没有缺点。但对于以下情况,使用while循环更为传统
bool condition = false;
while(!condition)
{
}
答案 1 :(得分: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
根据这本书,这是最好的选择。
答案 2 :(得分:1)
for循环被广泛使用并且比循环具有更多优点但是在某些情况下while循环是合适的
案例1.
当你在玩布尔时玩。在这种情况下,如果你使用for循环,你明确定义一个要检查的变量,或者你创建for循环,只有条件值在taht情况下,而循环是可取的
Boolean condition = false;
while(!condition)
{
condition = doSomething();
}
比较优先使用
Boolean condition = false;
for(;condition;)
{
condition = doSomething();
}
案例2.
为了更好的可见性和理解。当您使用迭代器时,最好使用while循环,它可以提供更清晰的代码视图。
while (iterator.hasNext()) {
String string = (String) iterator.next();
}
答案 3 :(得分:0)
for循环在while循环中的主要优点是可读性。 For循环更清洁,更好看。使用while循环陷入无限循环也更容易。我会说,我同意你的知识,如果你可以使用for循环,你应该,所以只要你坚持这一点,你的编程经验将会更加愉快。
答案 4 :(得分:0)
首先想到的是for循环的JIT优化更容易应用,即如果我们知道循环执行的次数,那么我们可以展开它。
关于循环优化和JIT
的一些讨论