Что означает «:» в этом выражении Java? - PullRequest
2 голосов
/ 22 октября 2010
for (Season time : Season.values() )
system.out.println (time+ "\t" + time.getSpan());

Я вижу пример для перечисления с использованием :.Что это значит?

Ответы [ 3 ]

7 голосов
/ 22 октября 2010

Это синтаксис Java для цикла foreach .

Цикл будет перебирать все элементы в коллекции объектов, возвращаемых Season.values() по одному, помещая каждый элемент по очереди в переменную time перед выполнением тела цикла. Смотрите этот связанный вопрос для более подробной информации о том, как работает цикл foreach.

1 голос
/ 22 октября 2010

Это Java-версия foreach.

Это сокращенная версия

for (int i = 0; i < Season.values().size(); i++) {
    Season time = Season.values().get(i);
    System.out.println(time + "\t" + time.getSpan());
}

(точные детали зависят от того, что именно возвращает Season.values ​​(), но вы поняли)

Как указывает Майкл, хотя приведенный пример более интуитивен, foreach на самом деле эквивалент этого:

Iterator<Season> seasons = Season.iterator();
while (seasons.hasNext()) {
    Season time = seasons.next();
    System.out.println(time + "\t" + time.getSpan());
}
1 голос
/ 22 октября 2010

Это просто токен, чтобы отделить итерационную переменную слева от массива справа в цикле new for-each

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...