foreach 语句为数组或对象集合中的每个元素重复一个嵌入语句组。foreach 语句用于循环访问集合以获取所需信息,但不应用于更改集合内容以避免产生不可预知的副作用。
语法格式:
for(type x : conllection){
for(type x : conllection){
}
实例:
public class Test {
public static void main(String[] args) {
int[] a = {1,2,3};
for(int i : a)
System.out.print(i + ",");
}
}
当使用foreach循环来迭代输出数组元素或集合元素时,通常不要对循环变量进行赋值,虽然这种赋值在语法上是允许的,但没有太大的实际意义,而且极容易引起错误。
实例:
从运行结果来看,有在foreach循环中对数组元素进行了赋值,结果导致不能正确遍历数组元素,不能准确取出每个数组元素的值。而且当再次访问第一个数组元素时,发现数组元素的值依然没有改变。不难看出,当时用foreach来迭代访问数组元素时,foreach中的循环变量相当于一个临时变量,系统会把数组元素依次赋给这个临时变量,而这个临时变量并不是数组元素,它只是保存了数组元素的值。因此,如果希望改变数组元素的值,则 不能使用这种foreach循环。
当使用foreach循环来迭代输出数组元素或集合元素时,通常不要对循环变量进行赋值,虽然这种赋值在语法上是允许的,但没有太大的实际意义,而且极容易引起错误。
实例:
从运行结果来看,有在foreach循环中对数组元素进行了赋值,结果导致不能正确遍历数组元素,不能准确取出每个数组元素的值。而且当再次访问第一个数组元素时,发现数组元素的值依然没有改变。不难看出,当时用foreach来迭代访问数组元素时,foreach中的循环变量相当于一个临时变量,系统会把数组元素依次赋给这个临时变量,而这个临时变量并不是数组元素,它只是保存了数组元素的值。因此,如果希望改变数组元素的值,则 不能使用这种foreach循环。