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


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


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


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


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


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


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


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


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


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



Switch ( вираз )

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

:

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

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

:

:

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

}

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

Тіло оператора switch складається з декількох операторів, помічених ключовим словом case з подальшим константним-виразом.

Слід зазначити, що використовування цілого константного виразу є істотним недоліком, властивим розглянутому оператору.

Оскільки константний вираз обчислюється під час трансляції, він не може містити змінні або виклики функцій. Як константний вираз використовуються цілі або символьні константи. Всі константні вирази в операторі switch повинні бути унікальні. Окрім операторів, помічених ключовим словом case, можливо, але обов'язково один, фрагмент помічений ключовим словом default. Список операторів може бути порожнім, або містити один або більш операторів. Причому в операторі switch не вимагається укладати послідовність операторів у фігурні дужки. Відзначимо також, що в операторі switch можна використовувати свої локальні змінні, оголошення яких знаходяться перед першим ключовим словом case, проте в оголошеннях не повинна використовуватися ініціалізація. Схема виконання оператора switch наступна:

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

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

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

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

Приклад. Нехай населені пункти позначені номерами від 1 до 8. Вартість одного квитка cina до конкретного пункту k визначається так:

 

 

Скільки коштує m квитків до населеного пункту, номер k якого вводиться з клавіатури?

#include <iostream.h>

#include <conio.h>

void main()

{

clrscr();

int k,m,cina;

begin: cout<<"Введiть номер населеного пункту (1..8) - "; cin>>k;

cout<<"Введiть кiлькiсть квиткiв - ";cin>>m;

switch (k)

{

case 1:cina = 22;break;

case 2: case 3: case 4: cina = 25;break;

case 5: case 6: cina = 30;break;

case 7: case 8: cina = 35;

default:

{

cout<<"Помилка при введеннi!"<<endl;

goto begin;

}

}

cout<<"Цiна "<<m<<" квиткiв до населеного пункту "<<k<<" рiвна "<<cina<<endl;

getch();

}

Всі оператори, між початковим оператором і кінцем тіла, виконуються незалежно від ключових слів, якщо тільки якийсь з операторів не передасть керування з тіла оператора 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. Таким чином, змінна i набуває значення, рівне 6, далі виконується оператор, помічений ключовим словом case 0, а потім case 4, змінна i прийме значення 3 а потім значення -2. Оператор, помічений ключовим словом default, не змінює значення змінної.

Використовування оператора break дозволяє в необхідний момент перервати послідовність виконуваних операторів в тілі оператора switch, шляхом передачі управління оператору, наступному за switch.

Відзначимо, що в тілі оператора 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;

:

}

Оператор break забезпечує припинення виконання самого внутрішнього з об'єднуючих його операторів switch, do, for, while. Після виконання оператора break керування передається оператору, наступному за перерваним.

 



Читайте також:

  1. Аналітичний вираз сил і моментів.
  2. Важкий ступінь розумової відсталості (виразна імбецильність)
  3. Визначення величини одноденних витрат окремих видів матеріальних цінностей (у натуральному і грошовому виразі).
  4. Вираз елементів рекуренти через початковий стан
  5. Вирази. Основні арифметичні операції.
  6. Гастрит хронічний. Виразкова хвороба шлунка і 12п кишки. Рак шлунка.
  7. Гастрит хронічний. Виразкова хвороба шлунка і 12п кишки. Рак шлунка.
  8. Громадські рухи й організації та засоби масової інформації як виразники суспільної думки про діяльність державної служби
  9. Доступність змісту, простота та динамічність розвитку сюжету, яскравість та емоційна насиченість образів, конкретність характерів, багатство і виразність мови.
  10. Загальний вираз енергії міжмолекулярної взаємодії.
  11. Запишемо вираз миттєвої потужності при гармонічному режимі




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

<== попередня сторінка | наступна сторінка ==>
Умовний вираз. | Тема. Оператори циклу.

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

  

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


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