Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архив WinRAR / 2_Посібник_С_002.doc
Скачиваний:
39
Добавлен:
17.05.2015
Размер:
2.7 Mб
Скачать

5.3 Оператор множинного розгалуження switch

Приклад 6. Синтаксис оператора switch

switch ( Вираз )

{

case константний вираз 1: набір операторів 1; break;

case константний вираз 2: набір операторів 2; break;

…………………………………………………….

case константний вираз n: набір операторів n; break;

default : набір операторів по замовченню;

}

Блок-схема оператора switch зображена на рисунку 5.3.

Рисунок 5.3 – Блок-схема оператора множинного розгалуження switch

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

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

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

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

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

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

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

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

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

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

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

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

Приклад 7. Написати програму яка виводить по введеному ключу (від 1 до 7) назву дня тижня. У випадку виходу за діапазон виводиться повідомлення про помилку.

#include <stdlib.h>

#include <stdio.h>

int main()

{

int day; /* день тижня*/

printf(“Vveditj denj tygnya (1-7)”);

scanf ("%i", & day);

switch( day )

{

case 1: printf("Ponedilok \n"); break;

case 2: printf("Vivtorok \n"); break;

case 3: printf("Sereda \n"); break;

case 4: printf("Chetver \n"); break;

case 5: printf("Pjatnyzzja \n"); break;

case 6: printf("Sybota \n"); break;

case 7: printf("Nedilya \n"); break;

default : printf ("Error! \n");

}

system("PAUSE");

return 0;

}

Соседние файлы в папке Архив WinRAR