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; виконується один раз до циклу.
  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

Якщо вам потрібно (наприклад, ваш проєкт — «вічний двигун» в ІТ), можна зробити нескінченний цикл for:

for (;;) // ні ініціалізації, ні умови, ні зміни
{
    Console.WriteLine("Працювати, працювати і ще раз працювати!");
}
Нескінченний цикл for

Увага: такий цикл завершиться лише тоді, коли в тілі буде break, return або throw. Не використовуйте його без потреби, інакше можете розбудити давнього демона — «Процес не відповідає».

Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ