4.3. Оператори переходу
У С# є п'ять операторів, що змінюють природний порядок виконання обчислень:
оператор безумовного переходу goto;
оператор виходу з циклу break;
оператор переходу до наступної ітерації циклу continue;
оператор повернення з функції return;
оператор генерації виключення throw.
Ці оператори можуть передати управління в межах блоку, в якому вони використані, і за його межі. Передавати управління всередину іншого блоку забороняється.
Оператор goto
Оператор безумовного переходу goto використовується в одній з трьох форм:
goto мітка;
goto case константний_вираз;
goto default;
У тілі функції має бути присутня тільки одна конструкція вигляду:
мітка: оператор;
Оператор goto мітка передає управління на помічений оператор. Мітка - це звичайний ідентифікатор, зоною видимості якого є функція, в тілі якої він заданий. Мітка повинна знаходитися в тій же зоні видимості, що і оператор переходу.
Друга і третя форми оператора goto використовуються в тілі оператора вибору switch. Оператор goto case константний_вираз передає управління на відповідну константному виразу гілку, а оператор goto default — на гілку default.
Оператор break
Оператор break використовується усередині операторів циклу або вибору для переходу в точку програми, що знаходиться безпосередньо за оператором, усередині якого знаходиться оператор break.
Оператор continue
Оператор переходу до наступної ітерації поточного циклу continue пропускає всі оператори тіла циклу, що залишилися до кінця, і передає управління на початок наступної ітерації.
Оператор return
Оператор повернення з функції return завершує виконання функції і передає управління в точку її виклику. Синтаксис оператора:
return [ вираз ];
Тип виразу повинен мати неявне перетворення до типу функції. Якщо тип значення, який повертає функція описаний як void, вираз має бути відсутнім.
4.4. Базові конструкції структурного програмування
Структурне програмування — це технологія створення програм, що дозволяє шляхом дотримання певних правил скоротити час розробки і зменшити кількість помилок, а також полегшити можливість модифікації програми.
У C# ідеї структурного програмування використовуються на найнижчому рівні — при написанні методів об'єктів. Доведено, що будь-який алгоритм можна реалізувати лише з трьох структур, які називаються базовими конструкціями структурного програмування: це послідовність, розгалуження і цикл.
Послідовністю називається конструкція, що реалізовує послідовне виконання двох або більше операторів (простих або складних).
Розгалуження задає виконання того чи іншого оператора залежно від виконання якої-небудь умови. Реалізується за допомогою операторів if та switch.
Цикл реалізує багатократне виконання операторів. Реалізується за допомогою операторів циклу. В C# є 4 типи операторів циклу: while, do, for, foreach.
Базові конструкції структурного програмування
Особливістю базових конструкцій є те, що будь-яка з них має лише один вхід і один вихід, тому конструкції можуть вкладатися один в одний довільним чином, наприклад, цикл може містити вихід з двох розгалужень, кожне з яких включає вкладені цикли.
Метою використання базових конструкцій є спрощення структури програми. Таку програму легко читати, відлагоджувати і при необхідності вносити до неї зміни. У більшості мов високого рівня існує декілька реалізацій базових конструкцій; у С# їм відповідає чотири види циклів і два види розгалужень.
Висновки
Для організації розгалужень в програмі використовуються оператори if і switch, синтаксис яких повністю співпадає з C++. Для організації циклу використовуються оператори циклу for, while, do, foreach. Всі цикли крім foreach успадковані від С++ і мають той самий синтаксис. У C# з'явився новий вид циклу foreach, зручний для роботи з масивами та іншими колекціями (про колекції мова йтиметься далі).
Для зміни порядку виконання програми в C# є оператори переходу: goto, break, continue, return і throw. Ці оператори можуть передати управління в межах блоку, в якому вони використані, і за його межі.
Хоча, як вже було сказано, С# є об'єктно-орієнтованою мовою програмування, при написанні методів використовуються конструкції структурного програмування за допомогою яких можна реалізувати будь-який алгоритм.
