foreach語句是for語句的特殊簡化版本,但foreach語句並不能完全取代for語句,然而,任何的foreach語句都可以改寫為for語句版本。
//foreach語句格式:
for(元素類型 元素變量x:遍歷對象obj){
//與x有關的語句;
}
例子:
//foreach int[]數組
//定義並初始化一個數組
int arr[] = {2, 3, 1};
for (int x : arr) {
System.out.println(x); //逐個輸出數組元素的值
}
//foreach string list
List<String> list = new ArrayList<String>();
for (String x : list) {
System.out.println(x); }
//foreach 二維數組
int arr2[][] = {{4, 3}, {1, 2}};
for (int[] x : arr2) {
for (int e : x) {
System.out.println(e); //逐個輸出數組元素的值
}
}
//這里並不難理解,還是根據foreach語句的定義來
//外層的int[] x : arr2 是對二維數組中的一維數組進行foreach遍歷,也就是“對arr2中的每一個一維數組”
//內層的 int e:x 是對一維數組中的每一個int值進行foreach遍歷,也就是“對x中的每一個int”
//foreach 三維數組
int arr[][][] = {
{{1, 2}, {3, 4}},
{{5, 6}, {7, 8}}
};
for (int[][] a2 : arr) {
for (int[] a1 : a2) {
for (int x : a1) {
System.out.println(x);
}
}
}
foreach語句的局限性:如果要引用數組或者集合的索引,則foreach語句無法做到,foreach僅僅老老實實地遍歷數組或者集合一遍。