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 не будет опубликован. Обязательные поля помечены *