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; виконується один раз до циклу.
- Далі виконується перевірка умови 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
Якщо вам потрібно (наприклад, ваш проєкт — «вічний двигун» в ІТ), можна зробити нескінченний цикл for:
for (;;) // ні ініціалізації, ні умови, ні зміни
{
Console.WriteLine("Працювати, працювати і ще раз працювати!");
}
Увага: такий цикл завершиться лише тоді, коли в тілі буде break, return або throw. Не використовуйте його без потреби, інакше можете розбудити давнього демона — «Процес не відповідає».
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ