Цикли служать для багаторазового повторення деякого фрагмента коду.
У Сі-шарп є чотири оператора циклів: for, while, do-while, foreach.
1.Цикл for
Цей цикл використовується тоді, коли наперед відомо, скільки повторень потрібно зробити. Він має наступну структуру:
for (ініціалізація лічильника; умова продовження; ітерація)
{
// блок коду, який буде повторюватися
}
Приклад програми, яка виводить на екран числа 0, 1, 2, 3, 4:
static void Main (string [] args)
{
for (int i = 0; i <5; i ++) // цикл виконається 5 разів
{
Console.WriteLine (i);
}
}
Спочатку відбувається створення і ініціалізація лічильника, i = 0. Далі йде перевірка умови (i <5), якщо результат буде «істина», то далі виконується блок коду в тілі циклу. Наприкінці ітерації відбувається зміна значення лічильника (у даному прикладі збільшення на одиницю). Після цього знову відбувається перевірка умови і так далі. Коли умова буде «брехня», цикл роботу завершить.
Приклад програми, яка знаходить і виводить на екран суму елементів масиву:
static void Main (string [] args)
{
int [] numbers = {4, 7, 1, 23, 43};
int s = 0;
for (int i = 0; i <numbers.Length; i ++)
{
s + = numbers [i];
}
Console.WriteLine (s);
Console.ReadKey ();
}
Приклад циклу for, коли лічильник зменшується після кожної ітерації:
for (int i = 5; i> 0; i--) // виконається 5 разів
{
Console.WriteLine (i);
}
Лічильник можна змінювати не тільки на одиницю. Приклад програми, яка виводить парні числа (по число 50):
for (int i = 0; i <= 50; i + = 2) // виконається 26 разів
{
Console.WriteLine (i);
}
2. Цикл while
Слово while перекладається, як «поки», що добре його характеризує. Він продовжує виконуватися до тих пір, поки «істинно» деякий умова. Він має таку структуру:
while (умова продовження)
{
// блок коду, який буде повторюватися
}
Спочатку перевіряється умова, а далі виконується блок коду.
Приклад тієї ж програми, яка виводить на екран числа 0, 1, 2, 3, 4:
int i = 0;
while (i <5)
{
Console.WriteLine (i);
i ++;
}
Цикл може виконуватися «вічно», якщо задати завжди істинне умова:
while (true)
{
Console.WriteLine ("Вічний цикл");
}
3. Цикл do-while
Цей той же цикл while, тільки тут спочатку виконується блок коду, а вже потім йде перевірка умови. Це гарантує хоча б один прохід циклу.
do
{
// блок коду, який буде повторюватися
}
while (умова продовження);
Приклад програми, що не завершить роботу, поки з клавіатури не введуть число 5:
static void Main (string [] args)
{
int number;
do
{
Console.WriteLine ("Введіть число 5");
number = Convert.ToInt32 (Console.ReadLine ());
}
while (number! = 5);
}
Про циклі foreach ми поговоримо в окремому уроці.
Оператор break
З будь-якого циклу можна достроково вийти, використовуючи оператор break. Використовувати даний оператор є сенс після задоволення деякої умови, інакше цикл завершиться на першій ітерації.
Приклад програми, яка перевіряє, чи є в масиві число кратне 13-ти. Знайшовши таке число, немає сенсу далі перевіряти інші елементи масиву, і тут ми використовуємо оператор break:
static void Main (string [] args)
{
int [] numbers = {4, 7, 13, 20, 33, 23, 54};
bool b = false;
for (int i = 0; i <numbers.Length; i ++)
{
if (numbers [i]% 13 == 0)
{
b = true;
break;
}
}
Console.WriteLine (b? "У масиві є число кратне 13": "У масиві немає числа кратного 13");
Console.ReadKey ();
}
Оператор continue
Даний оператор дозволяє перейти до наступної ітерації, не завершивши до кінця поточну.
Приклад програми, яка знаходить суму непарних елементів масиву:
static void Main (string [] args)
{
int [] numbers = {4, 7, 13, 20, 33, 23, 54};
int s = 0;
for (int i = 0; i <numbers.Length; i ++)
{
if (numbers [i]% 2 == 0)
continue; // перехід до наступної ітерації
s + = numbers [i];
}
Console.WriteLine (s);
Console.ReadKey ();
}
Домашнє завдання
Завдання 1. Вивести на екран 20 елементів послідовності 1, 4, 7, 10, 13 ...
Завдання 2. Напишіть програму, яка буде «запитувати» правильний пароль, до тих пір, поки він не буде введений. Правильний пароль хай буде «root».
Завдання 3. Дано два масиви однакової довжини (по 10 елементів). Створіть третій масив, який буде відображати суму перших двох масивів. Перший елемент третього масиву дорівнює сумі перших елементів двох перших масивів і так далі.
PS. Не забуваємо підписуватися на оновлення по електронній пошті у формі