有关for-each风格的循环还要理解一个重点是:其迭代变量是“只读”的,因为它与数据的下标相关。对迭代变量赋值时,对数组下标是没有影响的。换名说,迭代变量赋一个新值是不会更改数组的内容的。如下面的程序:

package com.kkoolerter.jdk;

public class ForEach {

    public static void main(String[] args) {
        int[] array = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
        for(int a : array ){
            System.out.print(a+" ");
            a *= 10;//此变量是没有影响变量a的
        }
        System.out.println();
        for(int a:array){
            System.out.print(a+" ");
        }
    }

}

第一个循环的值增加了10倍,但没有影响输出的a的值。