我最近讨论过在Java中for循环中使用非计数器相关的条件:
for(int i = 0; o.getC() < 10; i++)
o.addC(i);
有没有人知道是否有任何&#34;官方&#34;像这样的条件的约定?在我看来,与等效的while循环相比,它更容易阅读,因为所有循环参数都在第一行中:
int i = 0;
while(o.getC() < 10) {
i++;
o.addC(i);
}
甚至更糟:
int i = 0;
while(o.getC() < 10)
o.addC(++i);
答案 0 :(得分:1)
for
解决方案中, while
循环几乎用于所有情况。数组,列表,标准数据结构。
另一方面,while
通常用于流和无限长的迭代..
答案 1 :(得分:1)
大多数开发人员都希望for
语句包含三个内容:
如果您更改代码以包含意外情况,则会更难以阅读,因此难以维护。
此外,我认为while
循环使您的意图更清晰:在o.getC()
小于10 时执行某些操作。这个&#34;东西&#34;恰好是:添加递增数字。
长话短说:对{&#34;非计数器相关条件&#34;使用while
循环。
答案 2 :(得分:0)
for循环的一个好处是有一个快捷方法。因此,如果您想要执行数组中的所有项目,您可以执行以下操作:
(double number:arrayName) 其中double是类型,number是给每个元素的名称(实际上你称之为无关紧要,在这种情况下你将每个值称为“数字”)。并且arrayName是您引用的数组的名称。
如果您想要到达每个元素/对象,这是最快的方法。
答案 3 :(得分:0)
怎么样:
for(int i = 0; i < MAX_ITERATIONS; i++)
{
o.addC(i);
if (o.getC() >= 10)
return o; // or break
}
如果addC没有真正按照您的预期行事,这可以防止无限循环。