1. Введение
Представьте, что у вас есть задание: десять раз вывести на экран «Привет!». Можно, конечно, написать десять строк с Console.WriteLine("Привет!"); — но вы же теперь знаете цикл while, так что без проблем справитесь с этим.
Но есть еще один цикл — for, который повторяет нужное действие необходимое количество раз. Причём умеет считать сам!
Вот типичный пример:
for (int i = 0; i < 10; i++)
{
Console.WriteLine("Привет!");
}
Что делает этот код? Он выводит на экран слово «Привет!» ровно 10 раз. Без копипасты и боли в запястье.
2. Синтаксис цикла for
Цикл for состоит из трёх основных частей, которые записываются в круглых скобках после ключевого слова for:
for (инициализация; условие; изменение)
{
// Тело цикла
}
Давайте разберём каждый элемент подробно:
- Инициализация — обычно создание переменной-счётчика, с которой ведётся отсчёт повторений (int i = 0).
- Условие — проверка перед каждой итерацией. Если оно истинно — выполняется тело цикла. Если ложно — цикл заканчивается. Например, i < 10.
- Изменение — оператор, который срабатывает после каждой итерации. Обычно увеличивает или уменьшает значение счётчика (i++).
Можно нарисовать схему:
3. Сравнение for и while
Возможно вам станет понятнее, если я скажу, что for — это просто еще одна запись цикла while.
Был у нас цикл while:
int i = 0; // Инициализация переменной для цикла
while(i < 10) // Проверка условия продолжения цикла
{
Console.WriteLine(i); // Полезное действие (тело цикла)
i++ // Увеличение счетчика
}
Мы его можем записать в виде цикла for, просто переместив все действия, которые управляли логикой цикла:
for (int i = 0; i < 10; i++) // Инициализация; Проверка условия; Увеличение счетчика
{
Console.WriteLine(i); // Полезное действие (тело цикла)
}
Шаги работы обоих циклов:
- Инициализация int i = 0; выполняется 1 раз до цикла.
- Затем выполняется проверка условия i <= 10
- Затем полезное действие цикла Console.WriteLine(i);
- Потом увеличение счетчика i++
- Затем идет переход на шаг 2.
4. Примеры использования цикла for
Самый простой пример
Давайте выведем числа от 1 до 5:
for (int i = 1; i <= 5; i++)
{
Console.WriteLine(i);
}
Вывод:
1
2
3
4
5
Примечание: если бы вы написали i < 5, последний вывод был бы 4.
Обратный отсчёт
Хотите почувствовать себя космонавтом? Сделаем обратный отсчёт!
for (int i = 5; i > 0; i--)
{
Console.WriteLine(i);
}
Console.WriteLine("Поехали!");
Вывод:
5
4
3
2
1
Поехали!
Шаг цикла отличен от 1
Можно изменять счётчик не только на 1, но и на любое другое число:
for (int i = 0; i <= 10; i += 2)
{
Console.WriteLine(i);
}
// Выведет: 0 2 4 6 8 10
5. Вариации цикла for
Несколько переменных в цикле
Иногда удобно отслеживать сразу две переменные. Например, давайте нарисуем числа справа налево и слева направо:
for (int left = 1, right = 10; left <= 10; left++, right--)
{
Console.WriteLine($"{left} {right}");
}
Вывод:
1 10
2 9
3 8
...
10 1
Бесконечный цикл for
Если случай очень тяжёлый (например, ваш проект — вечный двигатель в IT), можно сделать «вечный» цикл for:
for (;;) // ни инициализации, ни условия, ни изменения
{
Console.WriteLine("Работать, работать и ещё раз работать!");
}
Внимание: такой цикл закончится, только если в теле есть break, return или throw. Не используйте его без причины, иначе можно разбудить древнего демона — "Процесс не отвечает".
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ