Студопедия
Новини освіти і науки:
МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах


РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання


ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ"


ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ


Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків


Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні


Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах


Гендерна антидискримінаційна експертиза може зробити нас моральними рабами


ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ


ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів



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.

Приклад:

int i=2;

switch (i)

{

case 1: i += 2;

case 2: i *= 3;

case 0: i /= 2;

case 4: i -= 5;

default: ;

}

Виконання оператора switch починається з оператора, позначеного case 2. Таким чином, змінна одержує значення, рівне 6, далі виконується оператор, позначений ключовим словом case 0, а потім case 4, змінна і прийме значення 3, а потім значення -2. Оператор, позначений ключовим словом default, не змінює значення змінної.

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

Приклад:

:

switch (a)

{

case 1: b=c; break;

case 2:

switch (d)

{ case 0: f=s; break;

case 1: f=9; break;

case 2: f-=9; break;

}

case 3: b-=c; break;

:

}




Переглядів: 768

<== попередня сторінка | наступна сторінка ==>
Умовний оператор if | Оператор break

Не знайшли потрібну інформацію? Скористайтесь пошуком google:

  

© studopedia.com.ua При використанні або копіюванні матеріалів пряме посилання на сайт обов'язкове.


Генерація сторінки за: 0.002 сек.