for(int i :a)报错问题。

为什么这道题里用for循环用for(int i :a)会报错呢?谢谢。

public static void main(String[] args) {
int[] a = { 1, 3, 4, 5, 6, 7 };
int max = a[0];
int min = a[0];
int sum = 0;
for (int i = 0; i < a.length; i++) {
if (max < a[i]) {
max = a[i];
}
if (min > a[i]) {
min = a[i];
}
sum += a[i];
}
System.out.println("数组中最大值为" + max);
System.out.println("数组中最小值为" + min);
System.out.println("数组中各元素的和为" + sum);
}

两种for循环的值调用方式不一样,下面的代码试过,可以执行,你看看哪里不一样

public static void main(String[] args) {
        int[] a = { 1, 3, 4, 5, 6, 7 };
        int max = a[0];
        int min = a[0];
        int sum = 0;
        for (int i = 0; i < a.length; i++) {
            if (max < a[i]) {
                max = a[i];
            }
            if (min > a[i]) {
                min = a[i];
            }
            sum += a[i];
        }
        System.out.println("数组中最大值为" + max);
        System.out.println("数组中最小值为" + min);
        System.out.println("数组中各元素的和为" + sum);

        sum = 0;
        for ( int i : a) {
            if (max < i) {
                max = i;
            }
            if (min > i) {
                min = i;
            }
            sum += i;
        }
        System.out.println("数组中最大值为" + max);
        System.out.println("数组中最小值为" + min);
        System.out.println("数组中各元素的和为" + sum);
    }

输出结果:

数组中最大值为7
数组中最小值为1
数组中各元素的和为26
数组中最大值为7
数组中最小值为1
数组中各元素的和为26

换成for(int i :a) i并不是下标,是值