Рассмотрим ещё один java цикл – for-each.
Скачать исходники для статьи можно ниже
Цикл for-each имеет следующий синтаксис:
for (тип итерационная_переменная: коллекция) { блок операторов; }
Как видите, в этой конструкции ключевое слово (for) такое же, как и при использовании стандартной версии цикла for.
В этой конструкции:
“тип” – это тип данных;
“итерационная_переменная” – переменная, которая поочередно получает значения из “коллекции”.
“Коллекция” представляет собой набор из однотипных элементов.
“Тип” и тип элементов в коллекции должен совпадать.
В цикле for могут применяться различные виды коллекций. Мы будем использовать в качестве “коллекции” массивы, а в следующих уроках будут рассмотрены более сложные типы коллекций.
Теперь посмотрим, пример цикла for-each.
class Main { public static void main(String args[]){ int numb[] = {1,2,3,4,5}; int summa = 0; for(int i : numb){ summa = summa +i; } System.out.println("Сумма = " + summa); } }
Вывод программы:
Сумма = 15
Основное отличие циклов for-each от стандартных типов for в том, что мы не указываем начальное и конечное значение цикла. Здесь все делается автоматически. Сначала в переменную “i” записывается значение 1-ого элемента массива:
for(int i : numb){
Это значение приплюсовывается к сумме:
summa = summa +i;
Затем, на второй итерации в переменную “i” записывается значение 2-ого элемента массива, и опять оно будет приплюсовано к сумме. Цикл будет продолжаться до тех пор, пока не будут перебраны все элементы массива.
Как видите, for-each не требует указания начального (i=0) и конечного (i<5) значения счетчика цикла, что очень удобно, поскольку ошибка в этих значениях приводит к ошибке во всей программе. Например, если в первой задаче изменить конечное значение счетчика цикла на другое (большее) число, то программа завершится с ошибкой.