Программирование C#, Java, Net - фото

Цикл foreach в C# (часть 1)


Оцените данную статью

Это первая вводная статья про цикл foreach, во второй мы рассмотрим foreach более детально.
В данной статье расскажу, что же такое цикл foreach, как им пользоваться на простеньких примерах
и сравню его с обычным for.

Цикл foreach предназначен для перебора каждого элемента массива или объектов некоторой коллекции.
Сразу посмотрим пример:

    1. int sum = 0;
    2. List<int> intList = new List<int>(){ 3, 2, 5, 10};
    3. foreach(int value in intList)
    4. {
    5.         sum += value;
    6. }

В приведенном выше коде мы определяем сумму элементов списка intList. Вначале объявляем
переменную sum и инициализируем её нулем. Затем заполняем наш список intList значениями 3, 2, 5, 10.
Дальше идет наш цикл foreach. В круглых скобках пишем тип объекта, который содержится в нашем списке — это int,
и переменную, которая будет на каждой итерации получать очередное значение из intList’а.
Затем пишем ключевое слово in, после которого идет коллекция intList. В самом цикле мы уже непосредственно
рассчитываем сумму элементов списка. Ничего сложного вроде.

А теперь посмотрим как бы выглядело решение этой же задачки, но с использованием обычного цикла for:

    1. int sum = 0;
    2. List<int> intList = new List<int>(){ 3, 2, 5, 10};
    3. for(int i = 0; i < intList.Count; i++)
    4. {
    5.        sum += intList[i];
    6. }

Если сравнить два исходных кода с циклом for и foreach, можно заметить, что второй пример выглядит
немного посложнее, но более привычно (для тех кто еще только знакомиться с foreach). Необходимо чуток побольше
кодить, а именно объявлять переменную счетчик, указывать условие выхода из цикла. Плюс к этому, следить и контролировать, чтобы случайно
не выйти за пределы коллекции. Например, случайно ошибившись и написав i <= intList.Count, мы получим
исключение ArgumentOutOfRangeException. В цикле foreach подобных телодвижении производить не нужно,
мы всегда обойдем все элементы и не выйдем за пределы коллекции, за исключение некоторых случаев :

  • если в цикле foreach присутствует break;
  • если присутствует — goto;
  • если в цикле вылетает исключение;

И напоследок приведу еще один пример с циклом foreach для определения максимального значения.
Только на этот раз обходить будем элементы массива, а не список List:

    1. int []array = { 0, 3, 10, 1, 11};
    2. int max = array[0];
    3. foreach(int value in array)
    4. {
    5.       if (max < value)
    6.             max = value;
    7. }

На этом пожалуй остановимся и более подробно рассмотрим foreach во второй статье по данной теме.

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

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