Java Урок 11: Цикл, for each

Рассмотрим ещё один 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) значения счетчика цикла, что очень удобно, поскольку ошибка в этих значениях приводит к ошибке во всей программе. Например, если в первой задаче изменить конечное значение счетчика цикла на другое (большее) число, то программа завершится с ошибкой.

Введите свой email адрес для того, чтобы подписаться на мой блог:


knopkisoc

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *