Перевод расширенного цикла в стандартный цикл

1

Я всегда была проблема перевод усиленная for цикла в стандарт for цикла. Вот расширенная for цикла, что я хочу изменить в стандарт for структуры циклы:

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

Как я могу изменить это в качестве стандарта for цикла?

  • 1
    Каков тип возвращаемого значения getMinions() ?
Теги:
for-loop
foreach

1 ответ

3

Усиленный оператор for может циклически перебирать массивы и любой тип объекта 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();
    // ...
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню