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

Оператор вибору switch

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

Структура оператора наступна:

switch (вираз)

{case константні вираз: оператор або група операторів

break;

case константні вираз: оператор або група операторів

break;

...............

default: оператор або група операторів}

Значення виразу оператора switch має бути цілочисловим. Це означає, що у виразі можна використовувати змінні тільки цілого або символьного типу. Результат обчислення виразу по черзі порівнюється з кожним з константних виразів. Якщо в якій-небудь рядку знаходиться збіг, управління передається на відповідну мітку case, і виконується пов'язана з нею група операторів. Виконання продовжується до кінця тіла оператора switch або поки не зустрінеться оператор break, який передає управління з тіла switch оператору, наступному за закриваючою дану конструкцію фігурною дужкою.

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

Оператор, пов'язаний з default, виконується, якщо вираз не співпало з жодним з константних виразів в case. Оператор default не обов'язково розташовується в кінці конструкції. Крім того, він і сам не обов'язковий. У цьому випадку при відсутності збігів не виконується жоден оператор. Не допускається збіг константних виразів.

Приклад 1. За номером дня тижня, введеному з клавіатури, вивести на екран назву дня тижня:

# Include <stdio.h>

int main(void)

{

char day;

printf ("Введіть номер дня тижня \ n");

scanf ("% c», & day);

switch (day)

{

case'1 ': printf ("Понеділок \ n"); break;

case'2 ': printf ("Вівторок \ n"); break;

case'3 ': printf ("Середа \ n"); break;

case'4 ': printf ("Четвер \ n"); break;

case'5 ': printf ("П'ятниця \ n"); break;

case'6 ': printf ("Субота \ n"); break;

case'7 ': printf ("Неділя \ n"); break;

default: printf ("Помилка вводу \ n");

}

return 0;

}

У цьому прикладі змінна day, керуюча оператором switch, має символьний тип. При введенні з клавіатури символів 1, 2, ... 7 на екран виводиться назва відповідного дня тижня. При введенні будь-якого іншого символу на екран виводиться повідомлення про помилку. Приклад 2. За номером місяця, введеному з клавіатури, вивести на екран назву пори року:

# include <stdio.h>

int main (void)

{int month;

printf ("Введіть номер місяця в році \ n");

scanf ("% d", & month);

switch (month)

{

case 12:

case 1:

case 2: printf ("Зима \ n"); break;

case 3:

case 4:

case 5: printf ("Весна \ n"); break;

case 6:

case 7:

case 8: printf ("Літо \ n"); break;

default: printf ("Помилка вводу \ n"); break;

case 9:

case 10:

case 11: printf ("Осінь \ n");

}

return 0;}

У цьому прикладі оператор switch управляється цілочисельний змінної month. При введенні в цю змінну значень 12, 1 або 2 виконується одне і те ж дія - виведення на екран слова "Зима", так як в гілках case 12: і 1: немає жодного оператора. При введенні значення 12, наприклад, виконання switch почнеться зі строчки case 12:, потім буде виконана рядок case 1:, потім оператори рядки case 2:, останній з яких - break - завершить виконання оператора switch. Зверніть увагу також на становище гілки default - зовсім не обов'язково поміщати її останньої в switch.

Питання для контролю:

        1. Що таке логічний вираз?

        2. Які можна використовувати умови в С?

        3. Що таке оператор вибору?

        4. Який оператор здійснює умову?

Література:

1. Шпак З.Я. Програмування мовою С: Навчальний посібник. Львів: Оріяна-Нова, 2006. - 432 с –Стор 51-75

Урок №5

(згідно робочої навчальної програми)

Тема:Перерахування. Перетворення типів

Питання:

          1. Перерахування типів

2. Перетворення типів

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