将增强的For循环转换为标准循环

时间:2015-03-21 13:59:18

标签: java for-loop foreach

我一直无法将增强的for循环转换为标准for循环。以下是我想要更改为标准for循环结构的增强型for循环:

for (Thing cp: getPerson().getEnemy().getMinions())
    {
        if (cp.canMoveTo(this.getLocation()) && cp.getLocation() != null)
        {
            return true;
        }
    }
    return false;
}

如何将其更改为标准for循环?

1 个答案:

答案 0 :(得分:3)

enhanced for statement可以循环遍历数组和任何类型的Iterable对象,因此答案取决于getMinions是返回数组还是Iterable对象。

如果它返回一个数组,那么:

Thing[] minions = getPerson().getEnemy().getMinions();
for (int i = 0; i < minions.length; ++i) {
    Thing cp = minions[i];
    // ...
}

如果它返回Iterable,则:

Iterator<Thing> it = getPerson().getEnemy().getMinions().iterator();
while (it.hasNext()) {
    Thing cp = it.next();
    // ...
}