For循环条件约定

时间:2016-02-04 10:39:41

标签: java for-loop while-loop conditional-statements conventions

我最近讨论过在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);

4 个答案:

答案 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没有真正按照您的预期行事,这可以防止无限循环。