在寫for迴圈的時候,每次都需要輸入for迴圈的條件式,宣告int I, i<某數, i++
等類似的條件式,若要寫多個for迴圈,程式碼會變得密密麻麻,因此java有一個for-each的寫法,語法如下:
int[] array = new int[n];
for(int item : array);{
n += item;
}
假設要從整數陣列裡面拿出一些數出來計算,for迴圈裡面的條件式會先宣告一個暫時的函數item,這個item像是一個飯匙,array像是飯鍋,item 從飯鍋裡面撈東西出來記算的蓋念。
String[] letters = {"A", "B", "C", "D", "E"};
for (String letter: letters) {
}
對於字串陣列也是一樣的概念,宣告一個暫時的字串函數letter,
並從string陣列裡撈字串出來執行。
Day15程式碼是輸入一個數接著可以跑出對應數字的亂數,其迴圈的部分原式如下
用for-each方法改寫如下
執行結果相同,程式全碼如下
有幾個要注意的地方
1 for-each一定是從頭開始走訪每個元素,不會從資料的尾端向前走訪
2 只能取出集合或陣列裡的元素不能置換,所以不能執行swap
3 for-each迴圈裡面的變數是區域變數