for-each 循环提供了一种机制,可以为集合中的每个元素执行一段代码块。有些文档(例如 Oracle 的文档)把这种循环称为增强 for 循环。
下面是它的通用语法:
for(declaration: collection) {
body;
}
declaration 声明了一个变量,用来保存从集合中赋给它的值。
collection 是数组或集合,保存着将要赋给循环变量的值。
body 包含了会针对集合中的每个值执行一次的语句。
例如:
char[] vowels = {'a', 'e', 'i', 'o', 'u'};
for(char vowel: vowels) {
System.out.println(vowel);
}
它的输出是:
a
e
i
o
u
一般来说,for-each 循环比 for 循环更可取,原因如下:
for-each 循环保证会迭代到所有值。for-each 循环更具声明式,也就是说,代码表达的是做什么,而不是怎么做。for-each 循环万无一失,而使用 for 循环时很容易出现差一错误(想想用 < 还是 <=)。for-each 循环适用于所有集合类型,包括那些不支持用下标访问元素的类型(例如 Set)。