JavaRush /Курсы /C# SELF /Цикл for: знакомство и нюансы работы

Цикл for: знакомство и нюансы работы

C# SELF
4 уровень , 2 лекция
Открыта

1. Введение

Представьте, что у вас есть задание: десять раз вывести на экран «Привет!». Можно, конечно, написать десять строк с Console.WriteLine("Привет!"); — но вы же теперь знаете цикл while, так что без проблем справитесь с этим.

Но есть еще один цикл — for, который повторяет нужное действие необходимое количество раз. Причём умеет считать сам!

Вот типичный пример:

for (int i = 0; i < 10; i++)
{
    Console.WriteLine("Привет!");
}
Классический цикл for — 10 раз вывести "Привет!"

Что делает этот код? Он выводит на экран слово «Привет!» ровно 10 раз. Без копипасты и боли в запястье.

2. Синтаксис цикла for

Цикл 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);		// Полезное действие (тело цикла)
}

Шаги работы обоих циклов:

  1. Инициализация int i = 0; выполняется 1 раз до цикла.
  2. Затем выполняется проверка условия i <= 10
  3. Затем полезное действие цикла Console.WriteLine(i);
  4. Потом увеличение счетчика i++
  5. Затем идет переход на шаг 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("Работать, работать и ещё раз работать!");
}
Бесконечный цикл for

Внимание: такой цикл закончится, только если в теле есть break, return или throw. Не используйте его без причины, иначе можно разбудить древнего демона — "Процесс не отвечает".

2
Задача
C# SELF, 4 уровень, 2 лекция
Недоступна
Чётные числа от 2 до 20
Чётные числа от 2 до 20
2
Задача
C# SELF, 4 уровень, 2 лекция
Недоступна
Обратный отсчёт с сообщением
Обратный отсчёт с сообщением
Комментарии
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ