Цикли

Мова програмування С# має чотири оператори, що дозволяють організовувати цикли: while, do, for, foreach

Мова програмування С# має чотири оператори, що дозволяють організовувати цикли, це while, do, for, foreach. Розглянемо ці оператори.  

Цикл while

While є найпростішим типом циклів. Розглянемо його синтаксис
    while (вираз) {
        ......
    }
    
Вираз в цьому операторі може приймати два значення – true або false. Цей оператор працює доти, доки вираз приймає значення true. На початку роботи цього оператора перевіряється умова, якщо умова істинна, то здійснюється перехід в середину оператора і виконується код, записаний у фігурних дужках, після чого здійснюється перехід на оператор while і знову перевіряється умова. Якщо умова хибна, то оператор припиняє виконання і керування передається команді, що йде після фігурних дужок оператора. Таким чином, якщо умова хибна ще на першому кроці, то код у дужках може ніколи не виконатись. Як і для оператора if, фігурні дужки можна опускати, якщо оператор повинен виконати в середині себе один рядок коду. Нижче наведено приклад програми з оператором while. Цей приклад видасть послідовність чисел від 0 до 4.
using System;
class StatementDemo05
{
    public static void Demo()
    {
        int i=0;
        while (i!=5)
        {
            Console. WriteLine(i);
            i++;
        }
    }
}
Цей же приклад можна записати по іншому:
class StatementDemo06
    {
        public static void Demo()
        {
            int i = 0;
            while (i != 5)
                Console.WriteLine(i++);
        }
    }
Цикли while можуть бути вкладеними, так, наведена нижче програма видасть на екран таблицю множення в стовпчик.
    class StatementDemo07
    {
        public static void Demo()
        {
            int i = 2;
            while (i != 10)
            {
                int j = 1;
                while (j != 10)
                    Console.WriteLine("{0}*{1}={2}", i, j, i * j++);
                i++;
            }
        }
    }

Оператор do

Наступним оператором, що організовує цикли, є оператор do. Він схожий на оператор while, тільки він перевіряє умову після виконання коду в середині оператора. Синтаксис оператора наведено нижче.
do
{
    ……
}
while(вираз);
З синтаксису оператора, бачимо, що він виконується на один раз більше, ніж while при тій же умові. Причому код всередині оператора буде виконано принаймні один раз. Розглянемо приклад, як і для оператора while.
class StatementDemo08
    {
        public static void Demo()
        {
            int i = 0;
            do
            {
                Console.WriteLine(i);
                i++;
            } while (i != 5);
        }
    }
У цьому прикладі на екран буде надруковано послідовність чисел від 0 до 5. 

Оператор for

Ще одним прикладом оператора, що організовує цикли, є оператор for. Цей оператор був присутній у всіх мовах програмування і на сьогодні він є найбільш вживаним оператором, що реалізує цикли. Розглянемо його синтаксис.
for(ініціалізація;вираз;зміна значення змінних )
{
   //……
}
У блоці ініціалізації оголошуються і встановлюються початкові значення змінних, які ми збираємося використовувати у циклі. Ця частина виконується один раз на початку роботи циклу. Цей блок може бути єдиним не порожнім блоком.
Друга частина – це вираз, який повертає логічне значення і обраховується кожен раз перед виконанням операторів в блоці for. Якщо цей вираз повертає значення false, то оператор for закінчує свою роботу.
     
Попередня програма аналогічна програмі для оператора while, яка видає цифри від 0 до 4, але змінна оголошується безпосередньо в операторі for. Оператор for з попереднього прикладу можна розширити, включивши в нього зміну значення змінної i.
Остання частина виконується одразу після всіх операторів в блоці for і призначена для зміни значень змінних, що приймають участь в умові. З урахуванням цього попередній приклад має вигляд:
    class StatementDemo09
    {
        public static void Demo()
        {
            for (int i = 0; i < 5; i++)
            {
                Console.WriteLine(i);
            }
        }
    }


Оператор for легко виразити за допомогою оператора while.
ініціалізація
while(вираз)
{
……
оновлення змінних
}
Однак оператор for декому може здатися зручним, так як дозволяє зібрати розділені часті  оператора while разом (частина, поміщена у фігурні дужки). Крім того, кожен з трьох виразів (чи всі разом) в дужках можуть бути відсутні.
class StatementDemo10
    {
        public static void Demo()
        {
            var i = 0;
            for ( ;i < 10; )
            {
                Console.WriteLine(i++);
            }
        }
    }
Цей приклад повністю аналогічний наступному.
    class StatementDemo11
    {
        public static void Demo()
        {
            for (int i = 0; i < 10; i++)
            {
                Console.WriteLine(i);
            }
        }
    }
Або з використанням оператора while програму можна записати і так:
class StatementDemo12
    {
        public static void Demo()
        {
            int i = 0;
            while (i < 10)
            {
                Console.WriteLine(i);
                i++;
            }
        }
    }
Головна відмінність оператора for полягає у можливості оголошувати змінні в блоці ініціалізації. До того ж  змінних одного типу ми можемо оголошувати декілька, перерахувавши їх через кому.
Змінна, оголошена в операторі for, вважається локальною для блока for, тому використовувати її поза цим блоком не вдасться і код нижче видасть помилку:
class StatementDemo13    
    {
        public static void Demo()
        {
            for (int i = 0; i < 10; i++)
            {
                Console.WriteLine(i);
            }
            Console.WriteLine(i); //помилка компіляції
        }
    }

Додати коментар

Loading