按照我的想法,for循环用于迭代已知或可确定的范围。
String[] names = //something;
for ( int i = 0; i < names.length; i++ ) { //do stuff }
这等效于(除i之外):
String[] names = //something;
int i = 0;
while (i < names.length )
{
// do stuff
i++;
}
换句话说,for
对于常用的while
构建体,循环只是一种(非常有用的)语法糖。
但是,我在网络上看到很多for(;;)
在功能上等同于while(true)
这是什么原因呢?为什么无限for循环比无限while循环更受青睐?
//我什至看到一本完全没有使用while循环的java教科书!导致如下可怕的构造:
String input = getInput();
for( ; !inputIsValid(input) ; )
{
//redo;
}
主要原因是偏好。选择YMMV时,可读性应发挥作用。
—
亚伦·麦克弗
为什么有人会喜欢笨拙的构造?
—
克里斯·库德莫
您可以在此处交换内容
—
Caleb
while
,for
问题不会改变。while(true)
并且for(;;)
意思是一样的。您显然对某人有强烈的偏好while
,别人可能也同样有强烈的偏好for
。不可能说一个比另一个更正确。
我个人认为这是一个真正的机会,可以为无限循环完全使用另一种语法:就像
—
2011年
wheeeeeeee { ... }