Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
projekt_ukr2.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
180 Кб
Скачать
☆

Умовні оператори. Інкриментні та декрементні оператори.

До умовних операторів, відносяться оператор умови if і оператор вибору switch;

Формат оператора:

if (вираз) оператор-1; [else оператор-2;]

Виконання оператора if починається з обчислення виразів.

Далі виконання здійснюється за наступною схемою:

- якщо вираз істина (тобто відмінний від 0), то виконується оператор-1.

- якщо вираз хибний (тобто дорівнює 0),то виконується оператор-2.

- якщо вираз помилковий й відсутній оператор-2 (у квадратні дужки укладена необов'язкова конструкція), то виконується наступний за if оператор.

Після виконання оператора if значення передається на наступний оператор програми, якщо послідовність виконання операторів програми не буде примусово порушена використанням операторів переходу.

Допускається використання вкладених операторів if. Оператор if може бути включений у конструкцію if чи в конструкцію else іншого оператора if. Щоб зробити програму більш зручною, рекомендується групувати оператори і конструкції у вкладених операторах if, використовуючи фігурні дужки. Якщо ж фігурні дужки опущені, то компілятор зв'язує кожне ключове слово else з найбільш близьким if, для якого немає else.

Оператор switch призначений для організації вибору з безлічі різних варіантів. Формат оператора наступний:

switch (вираз)

{ [оголошення]

:

[ case константн-вираз1]: [ списків-операторів1]

[ case константн-вираз2]: [ списків-операторів2]

:

:

[ default: [ список операторів ]]

}

Вираз, що випливає за ключовим словом switch у круглих дужках, може бути будь-яким виразом, допустимим в мові Сі, значення якого повинно бути цілим. Відзначимо, що можна використовувати явне приведення до цілого типу, однак необхідно пам'ятати про ті обмеження і рекомендації, про які говорилося вище.

Значення цього виразу є ключовим для вибору з декількох варіантів. Тіло оператора smitch складається з декількох операторів, позначених ключовим словом case з наступним констант-вираз. Слід зазначити, що використання цілого константного вираза є істотним недоліком, властивому розглянутому оператору. Тому що константн-вираз обчислюється під час трансляції, він не може містити змінні чи виклики функцій.

Усі константн-вирази в операторі switch повинні бути унікальні. Крім операторів, позначених ключовим словом case, може бути, але обов'язково один фрагмент позначений ключовим словом default.

Список операторів може бути порожнім, або містити один чи більше операторів. Причому в операторі switch не потрібно укладати послідовність операторів у фігурні дужки.

Відзначимо також, що в операторі switch можна використовувати свої локальні змінні, оголошення яких знаходяться перед першим ключовим словом case, однак в оголошеннях не повинна використовуватися ініціалізація.

Схема виконання оператора switch наступна:

- обчислюється вираз в круглих дужках;

- обчислені значення послідовно порівнюються з константними виразами, що випливають за ключовими словами case;

- якщо одне з константних виражень збігається зі значенням вираз, то керування передається на оператор, позначений відповідним ключовим словом case;

- якщо жодне з константних виражень не дорівнює вираженню, то керування передається на оператор, позначений ключовим словом default, а у випадку його відсутності керування передається на наступний після switch оператор.

Відзначимо цікаву особливість використання оператора switch: конструкція зі словом default може бути не останньою в тілі оператора switch. Ключові слова case і default у тілі оператора switch істотні тільки при початковій перевірці, коли визначається початкова крапка виконання тіла оператора switch. Всі оператори, між початковим оператором і кінцем тіла, виконуються поза залежністю від ключових слів, якщо тільки якийсь з операторів не передасть керування з тіла оператора switch. Таким чином, програміст повинний сам подбати про вихід з case, якщо це необхідно. Найчастіше для цього використовується оператор break.

Для того, щоб виконати ті самі дії для різних значень вираз, можна позначити той самий оператор декількома ключовими словами case.

Першими двома унарними операціями є операції ++і --і. Ці операції бувають як постфіксними, так і префіксними.

Операція префіксного інкременту ++

У виразі

++ унарний-вираз

операндом є унарний вираз:

він повинен бути скалярного типу і повинен бути виразом, що іменує і модифікується. Операцію префіксного інкременту також називають операцією преінкременту. Операнд інкрементується на 1 до обчислення виразу; значенням усього виразу є інкрементоване значення операнду. Величина інкременту залежить від типу операнду. Значення типу вказівника обчислюються за правилами арифметичних дій з вказівниками.

Префіксна операція декременту --і

Префіксна операція декременту, також відома як предекремент, має наступний синтаксис:

--унарний-вираз і підкоряється тим же правилам, що й операція префіксного інкременту, за винятком того, що одиниця перед обчисленням виразу віднімається.

Лекція 5

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]