循环意味着什么?

时间:2014-01-29 03:27:44

标签: java

我正在阅读一个java代码,它有一个for循环

for (PoolStaff staff : staffList)

我还没有看到这样的前循环。我习惯于看到类似“for(int i = 0,i< 5,i ++”等等。

有人可以向我解释一下for循环吗?

2 个答案:

答案 0 :(得分:6)

这称为增强型循环,或代表每个循环。这意味着对于列表中的每个项目,给它一个临时名称并用它做一些事情。

如果列表是基元数组,如int[],则命名变量是副本。对副本所做的任何更改都不会反映在原始列表中。例如:

int[] myArray = {1, 2, 3};
for(int i: myArray) {
   i = i + 1;
}
System.out.println(Arrays.toString(myArray)); // This prints 1, 2, 3!

如果列表是一个对象数组,例如问题中的staffList,则命名变量是对原始对象的引用,对命名对象的任何更改都将反映在原始列表中。例如:

Person[] myArray = {new Person("Alice", 23),
                    new Person("Bob", 20), 
                    new Person("Charlie", 25)};
for(Person person: myArray) {
   person.age = 30;
}
// Now every person in my list is 30 years old

您可以从官方来源here获取有关每个循环的更多信息。

答案 1 :(得分:1)

它是一个ForEach循环。基本上它迭代了集合的所有元素。