Given the following array:



int[] intArr = {8, 16, 32, 64, 128};

Which two code fragments, independently, print each element in this array?

A.

for (int i : intArr) {
    System.out.print(intArr[i] + " ");
}
B.
for (int i : intArr) {
    System.out.print(i + " ");
}
C.
for (int i = 0; intArr) {
    System.out.print(intArr[i] + " ");
    i++;
}
D.
for (int i = 0; i < intArr.length; i++) {
    System.out.print(i + " ");
}
E.
for (int i = 0; i < intArr.length; i++) {
    System.out.print(intArr[i] + " ");
}

題解

選項A,在第一次執行for迴圈時會拋出ArrayIndexOutOfBoundsException,因為intArr[8]超出陣列索引範圍。

選項B,正確的foreach用法。

選項C,在第一次執行for迴圈時會拋出ArrayIndexOutOfBoundsException,因為intArr[8]超出陣列索引範圍。

選項D,會輸出「0 1 2 3 4 」,不是我們要的結果。

選項E,正確的程式。