Цикл foreach
Перебирайте элементы без индексов.
«Цикл foreach» — бесплатный урок C# Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения C# Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс C# Academy содержит 4 уроков всего.
Что такое foreach
Цикл foreach позволяет поочерёдно обратиться к каждому элементу коллекции.
Вам не нужно управлять индексом или счётчиком. C# перебирает коллекцию за вас и передаёт каждый элемент в переменную, которую вы назовёте.
Это самый удобный способ прочитать все элементы массива или списка.
Базовый синтаксис
Структура проста: foreach (var item in collection), за которой следует тело цикла.
На каждой итерации item содержит следующий элемент. После последнего элемента цикл завершается автоматически.
foreach (var name in names)
{
Console.WriteLine(name);
}Ваш первый foreach
Давайте переберём массив строк и выведем каждое имя.
Обратите внимание: здесь нет ни индекса, ни проверки длины. Цикл просто посещает каждый элемент по порядку.
string[] names = { "Ada", "Linus", "Grace" };
foreach (var name in names)
{
Console.WriteLine(name);
}Переменная цикла
Переменная цикла (здесь n) — это отдельная копия, создаваемая для каждого элемента.
Вы можете выбрать любое имя. Выбирайте имя, описывающее элемент, например number или n.
int[] scores = { 90, 75, 88 };
foreach (var n in scores)
{
Console.WriteLine(n);
}Использование var вместо явного типа
Вместо var можно явно записать тип элемента.
Оба варианта работают одинаково. var позволяет компилятору определить тип, благодаря чему код становится короче.
int[] scores = { 90, 75, 88 };
foreach (int score in scores)
{
Console.WriteLine(score);
}Действия в теле цикла
Тело цикла может выполнять любые действия: вычисления, проверки условий или подсчёт общей суммы.
Здесь мы добавляем каждое значение к текущей сумме и выводим результат после цикла.
int[] nums = { 4, 8, 15 };
int total = 0;
foreach (var x in nums)
{
total += x;
}
Console.WriteLine(total);foreach с условиями
Внутри цикла можно разместить if, чтобы выполнять действие только для определённых элементов.
В этом примере из массива выводятся только чётные числа.
int[] nums = { 1, 2, 3, 4, 5, 6 };
foreach (var x in nums)
{
if (x % 2 == 0)
Console.WriteLine(x);
}foreach читает, но не заменяет
Переменная цикла доступна только для чтения внутри цикла. Нельзя присвоить ей новое значение, чтобы изменить коллекцию.
Эта строка вызвала бы ошибку компиляции, поскольку переменная foreach неизменяема.
foreach (var x in nums)
{
x = x + 1; // ERROR: cannot assign to iteration variable
}Перебор символов
Строка представляет собой последовательность символов, поэтому её тоже можно перебрать с помощью foreach.
На каждой итерации вы получаете один char из текста.
string word = "code";
foreach (var c in word)
{
Console.WriteLine(c);
}Когда использовать foreach
Используйте foreach, когда хотите обратиться к каждому элементу и индекс вам не нужен.
Если нужна позиция или требуется изменить коллекцию во время перебора, лучше подойдёт цикл for.
foreach и for
Цикл for управляет счётчиком и использует индексацию, например arr[i].
foreach скрывает эту механику. Он короче и помогает избежать ошибок на единицу, когда нужно только прочитать каждый элемент.
for (int i = 0; i < names.Length; i++)
{
Console.WriteLine(names[i]);
}Быстрая проверка
Проверьте, что вы узнали о цикле foreach.
Повторение
Вы узнали, что foreach обращается к каждому элементу коллекции без использования индекса.
Переменная цикла — это доступная только для чтения копия каждого элемента. Используйте foreach для удобного чтения, а for, когда нужна позиция или требуется изменить элементы.
Часто задаваемые вопросы
Урок «Цикл foreach» бесплатный?
Да — полный текст урока «Цикл foreach» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс C# Academy, подпишись на CoddyKit PRO. Курс C# Academy содержит 4 уроков всего.
Чему я научусь в уроке «Цикл foreach»?
Перебирайте элементы без индексов. Ты практикуешь C# Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать C# Academy?
Предыдущий опыт не требуется. C# Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.
Сколько времени занимает урок «Цикл foreach»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке C# Academy?
Да. Каждый урок C# Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.