2010-10-22 46 views

回答

7

這是foreach loop的Java語法。

循環將一次一個遍歷由Season.values()返回的對象集合中的所有項目,並在執行循環體之前將每個項目依次放入time變量中。關於foreach循環如何工作的更多細節,請看related question

+0

哦,我明白了。我習慣於在PHP中看到'as'。 – Strawberry 2010-10-22 03:26:49

+0

@Doug:在PHP中使用'as'。例如:'foreach($ array as $ val)' – codaddict 2010-10-22 03:27:57

+1

@codaddict是的,我做了正確的。你遠在我前面! – Strawberry 2010-10-22 03:28:17

1

它的foreach Java的版本分開的令牌。

它的

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

實際上,它對於基於迭代器的等價物是短暫的(因爲它適用於任何可以迭代的東西)。 – 2010-10-22 03:28:23

+0

@Michael - 好點,爲後代添加的示例 – 2010-10-22 03:32:50

+0

在哪些Universe使用for來對容器執行索引迭代比使用Iterator語義更直觀。對於他們自己,我想.. – dsmith 2010-10-22 03:42:25