Цикл 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).