Java for-each Loop


簡介

很多程式語言都有支援for-each這類的語法,簡單的說for-each語法就是當我們想要存取一個 Array 或 Collection 裡面所有的元時可以更方便、更有效率的語法。for-each 也有人稱為 enhanced for 或 for-in。
使用上要注意的事項有:
  • 只適用於 Java 5.0 以後的版本
  • 只適用於有 implement Iterable  的類別基本上 Array 與 Collection 類別都沒問題。
  • 只能存取裡面元素而不能置換掉它,記住,for-each 裡面的變數是 local 變數離開 for-each 之後就會消失。
  • 只能同時針對一個 Array 或 Collection 進行操作。
  • 只能同時針對一個元素操作。
  • 只能從頭開始訪問每個元素。


語法


底下針對 Array 與 Collection 分別說明:
for-each 迴圈for 迴圈
for (type var : arr) {
    body-of-loop
}
for (int i = 0; i < arr.length; i++) { 
    type var = arr[i];
    body-of-loop
}
for (type var : coll) {
    body-of-loop
}
for (Iterator<type> iter = coll.iterator(); iter.hasNext(); ) {
    type var = iter.next();
    body-of-loop
}

範例


這是一個使用 for-each 迴圈的程式碼:
double[] ar = {1.2, 3.0, 0.8};
int sum = 0;
for (double d : ar) {  // d gets successively each value in ar.
    sum += d;
}
這是一個使用一般 for 迴圈的程式碼:
double[] ar = {1.2, 3.0, 0.8};
int sum = 0;
for (int i = 0; i < ar.length; i++) {  // i indexes each element successively.
    sum += ar[i];
}

0 意見: