For 循环条件约定
For-loop condition conventions
我最近讨论了 Java 中 for 循环中非计数器相关条件的使用:
for(int i = 0; o.getC() < 10; i++)
o.addC(i);
有谁知道是否有任何 "official" 像这样的 for-conditions 约定?在我看来,与等效的 while 循环相比,它更容易阅读,因为所有循环参数都在第一行:
int i = 0;
while(o.getC() < 10) {
i++;
o.addC(i);
}
甚至更糟:
int i = 0;
while(o.getC() < 10)
o.addC(++i);
for 循环的一个好处是有一个快捷方法。因此,如果您想执行数组中的所有项目,您只需执行以下操作:
(双数:arrayName)
其中 double 是类型,number 是你给每个元素的名称(你怎么称呼它并不重要,在这种情况下你将在那里引用每个值作为 "number" )。 arrayName 是你所引用的数组的名称。
如果你想达到每个 element/object 这是最快的方法。
怎么样:
for(int i = 0; i < MAX_ITERATIONS; i++)
{
o.addC(i);
if (o.getC() >= 10)
return o; // or break
}
如果 addC 没有真正按照您的预期进行,这可以防止无限循环。
for
循环在几乎所有情况下都使用等效的 while
解决方案。数组、列表、标准数据结构。
另一方面,while
通常用于流和无限长的迭代..
大多数开发人员都希望 for
语句包含三件事:
- 变量初始化
- 基于变量的终止条件
- 增加变量
如果您更改代码以包含意想不到的内容,它将变得更难阅读,因此更难维护。
此外,我认为 while
循环使您的意图更清晰:在 o.getC()
小于 10 时做某事。这个"something"恰好是:加一个递增的数字.
长话短说:对 "non-counter related conditions" 使用 while
循环。
我最近讨论了 Java 中 for 循环中非计数器相关条件的使用:
for(int i = 0; o.getC() < 10; i++)
o.addC(i);
有谁知道是否有任何 "official" 像这样的 for-conditions 约定?在我看来,与等效的 while 循环相比,它更容易阅读,因为所有循环参数都在第一行:
int i = 0;
while(o.getC() < 10) {
i++;
o.addC(i);
}
甚至更糟:
int i = 0;
while(o.getC() < 10)
o.addC(++i);
for 循环的一个好处是有一个快捷方法。因此,如果您想执行数组中的所有项目,您只需执行以下操作:
(双数:arrayName) 其中 double 是类型,number 是你给每个元素的名称(你怎么称呼它并不重要,在这种情况下你将在那里引用每个值作为 "number" )。 arrayName 是你所引用的数组的名称。
如果你想达到每个 element/object 这是最快的方法。
怎么样:
for(int i = 0; i < MAX_ITERATIONS; i++)
{
o.addC(i);
if (o.getC() >= 10)
return o; // or break
}
如果 addC 没有真正按照您的预期进行,这可以防止无限循环。
for
循环在几乎所有情况下都使用等效的 while
解决方案。数组、列表、标准数据结构。
另一方面,while
通常用于流和无限长的迭代..
大多数开发人员都希望 for
语句包含三件事:
- 变量初始化
- 基于变量的终止条件
- 增加变量
如果您更改代码以包含意想不到的内容,它将变得更难阅读,因此更难维护。
此外,我认为 while
循环使您的意图更清晰:在 o.getC()
小于 10 时做某事。这个"something"恰好是:加一个递增的数字.
长话短说:对 "non-counter related conditions" 使用 while
循环。