Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Цикл For | Цикли
Practice
Projects
Quizzes & Challenges
Quizzes
Challenges
/
Основи C#

bookЦикл For

Цикл дозволяє виконувати фрагмент коду стільки разів, скільки потрібно. Існують різні типи циклів. У C#, якщо потрібно виконати фрагмент коду певну кількість разів, використовується цикл for loop.

Шаблон (синтаксис) циклу for виглядає так:

main.cs

main.cs

copy
123
for(initiation; condition; operation) { // code to execute }

Розглянемо приклад використання цього синтаксису:

main.cs

main.cs

copy
123456789101112131415
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { // Output "Hello World" ten times. for(int i = 0; i < 10; i++) { Console.WriteLine("Hello World"); } } } }

Примітка

i++ те саме, що й i = i + 1. Це збільшує значення змінної на 1. Аналогічно, i-- зменшує значення на 1.

  • int i = 0 — це частина ініціалізації. Ініціалізація відбувається на початку виконання циклу. На початку циклу створюється нова тимчасова змінна з іменем i та значенням 0;
  • i < 10 — це умова. Умова перевіряється на кожній ітерації (повторенні) циклу. Цикл продовжує виконувати вкладений блок коду, доки умова істинна;
  • i++ — це операція, яка виконується після кожної ітерації. Зазвичай це інкремент або декремент. Оскільки значення i збільшується після кожної ітерації, умова i < 10 стане хибною після 10 ітерацій, і цикл завершиться.

Важливо розуміти, що всі три компоненти циклу forinitialization, condition та operation — є необов'язковими. Можна пропустити будь-який з них, але це може змінити поведінку циклу.

Хоча це не рекомендується, змінну циклу можна оголосити поза циклом і залишити частину initialization порожньою. У такому разі цикл все одно працюватиме, але слід бути обережним, оскільки це може призвести до неочікуваних результатів, якщо не контролювати цей процес належним чином.

main.cs

main.cs

copy
12345678910111213141516
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { int i = 0; for(; i < 10; i++) { Console.WriteLine("Hello World"); } } } }

Можна також видалити частину operation і розмістити її в кінці блоку коду циклу. Цикл працюватиме так само, як і раніше, оскільки змінна i все одно збільшується після кожної ітерації.

main.cs

main.cs

copy
1234567891011121314151617
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { int i = 0; for(; i < 10;) { Console.WriteLine("Hello World"); i++; } } } }

Зверніть увагу, що в наведеному вище коді ми все одно розмістили крапку з комою (;) у синтаксисі циклу там, де очікувалось int i = 0. Ця крапка з комою повинна завжди бути присутня, незалежно від того, створюємо ми змінну циклу чи ні.

Видалення умови циклу також можливе, але це призводить до нескінченного виконання циклу, якщо його не завершити вручну (про це ми дізнаємося у наступних розділах).

main.cs

main.cs

copy
1234567891011121314151617
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { // In this case the variable `i` is useless so we don't create it. // The loop never ends for(;;) { Console.WriteLine("Hello World"); } } } }

Примітка

Ми все ще включили обидві крапки з комою у синтаксисі циклу for(;;), вони є обов'язковими, інакше компілятор видасть помилку.

Оскільки значення i змінюється з кожною ітерацією, це можна використати на свою користь. Щоб це зрозуміти, розглянемо просту програму, яка виводить значення i на кожній ітерації:

main.cs

main.cs

copy
123456789101112131415
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { for(int i = 0; i < 10; i++) { Console.WriteLine(i); } } } }

Зверніть увагу, що цикл завершується на 9, оскільки починається з цифри 0. Загальна кількість ітерацій — десять. Ми можемо змінити ініціалізацію, умову та операцію, щоб вивести десять парних чисел від 2 до 20.

Примітка

Парні числа — це числа, які діляться на 2 без остачі. Наприклад: 2, 4, 6, 8, 10 тощо. Парні числа також включають число 0, але в цих прикладах ми розглядатимемо лише парні числа, більші за 0.

main.cs

main.cs

copy
123456789101112131415
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { for(int i = 2; i <= 20; i += 2) { Console.WriteLine(i); } } } }

Примітка

i += 2 — це коротший спосіб запису i = i + 2. Такий синтаксис також дійсний для інших операторів, наприклад, i -= 2, i *= 2, i /= 2, i %= 2 тощо.

Цикл починається з 0 і збільшує значення i на 2 у кожній ітерації. Ми змінили умову на i <= 20, щоб цикл зупинився на 20.

Вищенаведена логіка наведена для розуміння принципу роботи циклу for. Для виведення перших десяти парних чисел можна використати значно простішу логіку:

main.cs

main.cs

copy
1234567891011121314
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { for(int i = 1; i <= 10; i++) { Console.WriteLine(i * 2); } } } }

У цьому випадку умова значно простіша. Наприклад, якщо потрібно отримати перші 27 парних чисел, необхідно знати, яке число є 27-м парним, щоб сформувати умову для попереднього методу, однак у цьому випадку достатньо змінити умову на i <= 27:

main.cs

main.cs

copy
1234567891011121314
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { for(int i = 1; i <= 27; i++) { Console.WriteLine(i * 2); } } } }
question mark

Яким буде результат виконання наступної програми? Значення sum збільшується на i під час кожної ітерації, тому його значення протягом перших чотирьох ітерацій буде: 1, 3, 6, 10.

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 4. Розділ 1

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Suggested prompts:

Can you explain more about the different types of loops in C#?

What happens if I omit all three components in the for loop?

Can you show an example of a for loop that runs infinitely?

bookЦикл For

Свайпніть щоб показати меню

Цикл дозволяє виконувати фрагмент коду стільки разів, скільки потрібно. Існують різні типи циклів. У C#, якщо потрібно виконати фрагмент коду певну кількість разів, використовується цикл for loop.

Шаблон (синтаксис) циклу for виглядає так:

main.cs

main.cs

copy
123
for(initiation; condition; operation) { // code to execute }

Розглянемо приклад використання цього синтаксису:

main.cs

main.cs

copy
123456789101112131415
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { // Output "Hello World" ten times. for(int i = 0; i < 10; i++) { Console.WriteLine("Hello World"); } } } }

Примітка

i++ те саме, що й i = i + 1. Це збільшує значення змінної на 1. Аналогічно, i-- зменшує значення на 1.

  • int i = 0 — це частина ініціалізації. Ініціалізація відбувається на початку виконання циклу. На початку циклу створюється нова тимчасова змінна з іменем i та значенням 0;
  • i < 10 — це умова. Умова перевіряється на кожній ітерації (повторенні) циклу. Цикл продовжує виконувати вкладений блок коду, доки умова істинна;
  • i++ — це операція, яка виконується після кожної ітерації. Зазвичай це інкремент або декремент. Оскільки значення i збільшується після кожної ітерації, умова i < 10 стане хибною після 10 ітерацій, і цикл завершиться.

Важливо розуміти, що всі три компоненти циклу forinitialization, condition та operation — є необов'язковими. Можна пропустити будь-який з них, але це може змінити поведінку циклу.

Хоча це не рекомендується, змінну циклу можна оголосити поза циклом і залишити частину initialization порожньою. У такому разі цикл все одно працюватиме, але слід бути обережним, оскільки це може призвести до неочікуваних результатів, якщо не контролювати цей процес належним чином.

main.cs

main.cs

copy
12345678910111213141516
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { int i = 0; for(; i < 10; i++) { Console.WriteLine("Hello World"); } } } }

Можна також видалити частину operation і розмістити її в кінці блоку коду циклу. Цикл працюватиме так само, як і раніше, оскільки змінна i все одно збільшується після кожної ітерації.

main.cs

main.cs

copy
1234567891011121314151617
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { int i = 0; for(; i < 10;) { Console.WriteLine("Hello World"); i++; } } } }

Зверніть увагу, що в наведеному вище коді ми все одно розмістили крапку з комою (;) у синтаксисі циклу там, де очікувалось int i = 0. Ця крапка з комою повинна завжди бути присутня, незалежно від того, створюємо ми змінну циклу чи ні.

Видалення умови циклу також можливе, але це призводить до нескінченного виконання циклу, якщо його не завершити вручну (про це ми дізнаємося у наступних розділах).

main.cs

main.cs

copy
1234567891011121314151617
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { // In this case the variable `i` is useless so we don't create it. // The loop never ends for(;;) { Console.WriteLine("Hello World"); } } } }

Примітка

Ми все ще включили обидві крапки з комою у синтаксисі циклу for(;;), вони є обов'язковими, інакше компілятор видасть помилку.

Оскільки значення i змінюється з кожною ітерацією, це можна використати на свою користь. Щоб це зрозуміти, розглянемо просту програму, яка виводить значення i на кожній ітерації:

main.cs

main.cs

copy
123456789101112131415
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { for(int i = 0; i < 10; i++) { Console.WriteLine(i); } } } }

Зверніть увагу, що цикл завершується на 9, оскільки починається з цифри 0. Загальна кількість ітерацій — десять. Ми можемо змінити ініціалізацію, умову та операцію, щоб вивести десять парних чисел від 2 до 20.

Примітка

Парні числа — це числа, які діляться на 2 без остачі. Наприклад: 2, 4, 6, 8, 10 тощо. Парні числа також включають число 0, але в цих прикладах ми розглядатимемо лише парні числа, більші за 0.

main.cs

main.cs

copy
123456789101112131415
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { for(int i = 2; i <= 20; i += 2) { Console.WriteLine(i); } } } }

Примітка

i += 2 — це коротший спосіб запису i = i + 2. Такий синтаксис також дійсний для інших операторів, наприклад, i -= 2, i *= 2, i /= 2, i %= 2 тощо.

Цикл починається з 0 і збільшує значення i на 2 у кожній ітерації. Ми змінили умову на i <= 20, щоб цикл зупинився на 20.

Вищенаведена логіка наведена для розуміння принципу роботи циклу for. Для виведення перших десяти парних чисел можна використати значно простішу логіку:

main.cs

main.cs

copy
1234567891011121314
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { for(int i = 1; i <= 10; i++) { Console.WriteLine(i * 2); } } } }

У цьому випадку умова значно простіша. Наприклад, якщо потрібно отримати перші 27 парних чисел, необхідно знати, яке число є 27-м парним, щоб сформувати умову для попереднього методу, однак у цьому випадку достатньо змінити умову на i <= 27:

main.cs

main.cs

copy
1234567891011121314
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { for(int i = 1; i <= 27; i++) { Console.WriteLine(i * 2); } } } }
question mark

Яким буде результат виконання наступної програми? Значення sum збільшується на i під час кожної ітерації, тому його значення протягом перших чотирьох ітерацій буде: 1, 3, 6, 10.

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 4. Розділ 1
some-alt