求大神指点 关于java 的foreach循环问题

import java.util.Arrays;

public class lianxi02 {

    public static void main(String[] args) {

        // 定义一个整型数组,保存成绩信息
        int[] scores = { 89, 72, 64, 58, 93 };

        // 对Arrays类对数组进行排序

        Arrays.sort(scores);
        // 使用foreach遍历输出数组中的元素
        for (int score:scores  ) {
            System.out.println(score);
        }
    }

}
输出的为什么是score 不是scores

 foreach的语句格式: 
for(元素类型t 元素变量x : 遍历对象obj){ 
     引用了x的java语句; 
} 
所以score是scores里面的元素,也就是数字

score是你scores数组中的元素,意思就是普通for(int i=0;i<a.length;i++)循环中a[i]的值

语法格式:
for(type variableName : array | collection)
{
//variableName 自动迭代访问每个元素...
}
varibleName这个循环变量是一个临时变量

foreach 语句用于循环访问集合以获取所需信息,
foreach(数据类型 标识符 :集合)
{
循环体
}。

括号里的意思就是score=scores[i]
然后为每一个元素执行输出语句

foreach 语句用于循环访问集合以获取所需信息,
foreach(数据类型 标识符 :集合)
{
循环体
}。

括号里的意思就是score=scores[i]
然后为每一个元素执行输出语句

for (int score:scores):scores是int数组,score就是scores中的一个元素,遍历输出的当然要是数组中的元素!

scores是int数组,score就是scores中的元素。使用foreach循环遍历,就是获取数组的第一个值,赋值给score,
然后打印score就相当于打印数组的第一个元素,下一次循环获取scores数组中第二个元素,赋值给score,
然后打印score就相当于打印数组的第二个元素,依次类推。
所以在foreach中打印score就相当于打印scores中的所有元素。

score=scores [i]

这个新循环,score变量就是临时用来保存scores数组里面元素的,相当于

 for(int i=0;i<scores.length;i++){
score=scores[i];
System.out.println(score);
}