Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Розглянути приклади використання перемикача та реалізувати їх в середовищі програмування.

Читайте также:
  1. АГРОВИРОБНИЧЕ УГРУПУВАННЯ І РЕКОМЕНДАЦІЇ ЩОДО ПІДВИЩЕННЯ РОДЮЧОСТІ ГРУНТІВ ГОСПОДАРСТВА ТА СІЛЬСЬКОГОСПОДАРСЬКОГО ВИКОРИСТАННЯ
  2. Аналіз використання ідей В.О. Сухомлинського педагогами сучасної школи
  3. Аутсайдерами цього сезону стали сукні із мережива та сукні з використанням шкіри, чи шкіряних вставок.
  4. Бюджет розвитку МБ, джерела його формування та напрямки використання.
  5. ВИКОРИСТАННЯ ГІРЧИЦІ ТА ГІРЧИЧНИКІВ
  6. Використання еластичності при прогнозуванні ринкових процесів, проведенні державою політики оподаткування
  7. Використання електронної пошти в рекламній діяльності. Створення власних рекламних Web-сторінок в Internet.

Оператор switch іноді називають перемикачем. Він призначений для вибору одного з декількох альтернативних варіантів у разі розгалуження процесу розв’язання задачі. Структура оператора така:

 

switch (вираз_цілого_типу) {

case константа_1: оператори;

case константа_2: оператори;

case константа_n: оператори;

default: оператори;

}

 

Після слова switch в дужках записується довільний вираз цілого типу. Кожен варіант вибору починається службовим словом case за яким вказується константа вибору (інша назва – мітка) даного варіанту. Мітки можуть бути константами або константними виразами, що мають цілочислове або символьне значення. Порядок запису варіантів вибору довільний, але всі константи повинні бути різними. Остання вітка оператора switch, яка починається службовим словом default, не є обов’язковою. У кінці оператора записується права фігурна дужка, після якої крапка з комою не ставляться.

Оператор виконує такі дії:

1) обчислює значення виразу, який керує вибором варіанта продовження процесу виконання програми;

2) це значення послідовно порівнюється зі значеннями констант вибору, доку не буде знайдено відповідну константу;

3) якщо знайдено варіант, константа вибору якого збігається зі значенням виразу, то виконуються оператори цього варіанта і всі наступні внутрішні оператори switch;

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

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

Приклад програми. Вивести на екран назву дня тижня по його номеру.

 

#include <iostream>

using namespace std;

int main(){

int a;

cin >> a;

switch (a) {

case 1: cout << "Monday" << endl;

case 2: cout << "Tuesday" << endl;

case 3: cout << "Wednesday" << endl;

case 4: cout << "Thursday" << endl;

case 5: cout << "Friday" << endl;

case 6: cout << "Saturday" << endl;

case 7: cout << "Sunday" << endl;

default: cout << "Wrong day number" << endl;

}

}

 

Число, яке вводить користувач програми, буде збережене в змінній а. При виконанні операторі switch значення змінної а буде порівняно з константами після case. Якщо вони рівні, управляння буде передане у відповідний рядок програми, будуть виконані всі оператори, які записані після відповідної мітки. Тобто, якщо користувач введе число 6, то будуть виконані оператори

 

cout << "Saturday" << endl;

cout << "Sunday" << endl;

cout << "Wrong day number" << endl;

 

Якщо нас це не влаштовує, то необхідно використовувати оператор break, який перериває виконання оператора switch і передає управління наступному за switch оператору. Наступна програма буде працювати коректно:

 

#include <iostream>

using namespace std;

int main(){

enum week_days {Mon = 1, Tue, Wed, Thu, Fri, Sat, Sun};

int a;

cin >> a;

switch (a) {

case Mon: cout << "Monday" << endl; break;

case Tue: cout << "Tuesday" << endl; break;

case Wed: cout << "Wednesday" << endl; break;

case Thu: cout << "Thursday" << endl; break;

case Fri: cout << "Friday" << endl; break;

case Sat: cout << "Saturday" << endl; break;

case Sun: cout << "Sunday" << endl; break;

default: cout << "Wrong day number" << endl;

}

}

 

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

 

#include <iostream>

using namespace std;

int main(){

char menu_item;

int command;

cout << "Menu Item: "; cin >> menu_item;

cout << "Command: "; cin >> command;

switch (menu_item) {

case 'F':

case 'f':

switch (command) {

case 1: cout << "F 1" << endl; break;

case 2: cout << "F 2" << endl; break;

case 3: cout << "F 3" << endl; break;

} break;

case 'E':

case 'e':

switch (command) {

case 1: cout << "E 1" << endl; break;

case 2: cout << "E 2" << endl; break;

} break;

case 'H':

case 'h':

switch (command) {

case 1: cout << "H 1" << endl; break;

case 2: cout << "H 2" << endl; break;

} break;

}

}

 

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

 

Контрольні питання

1. Які обчислення називають варіантними?

2. Які операції порівняння існують в С++?

3. Які логічні операції існують в мові С++?

4. Наведіть результати виконання логічних операцій між двома константами логічного типу для різних варіантів їх значень?

5. Наведіть пріоритети виконань всіх логічних та арифметичних операцій?

6. Яка структура умовного оператору?

7. Яка структура оператора варіанта?

8. Які існують обмеження на використання оператора варіанта?


Дата добавления: 2015-07-11; просмотров: 98 | Нарушение авторских прав


Читайте в этой же книге: Министерства, госкомитеты, иные субъекты исполнит власти; порядок образования, компетенция, роль, подчиненность, виды актов. | Понятие, особенности и формы проявления судебной власти. | Порядок формирования и состав Конст-ционного Суда. | Общие и специализированные суды. Верх. Суд РБ. Высший Хоз. Суд. | Полномочия судов и судей. Статус судьи и гарантии его деятельности. | Понятие и принципы местного управления и самоуправления. | Исполнительные комитеты(администрации) | Функции и задачи Прокуратуры РБ. | Конституционные основы бюджетной системы. | Тема: Побудування алгоритму, С-програми та її реалізація для процесів з розгалуженням |
<== предыдущая страница | следующая страница ==>
Умовні оператори| Инфляция

mybiblioteka.su - 2015-2024 год. (0.009 сек.)