- •Елементи мови с.Основні символи
- •Ключові слова
- •Ідентифікатори
- •Константи
- •Лексеми
- •Коментарі
- •Умовні оператори. Логічні вирази
- •Форми оператора if
- •Оператор вибору switch
- •Перерахування типів
- •Перетворення типів
- •Оператори циклу
- •Оператор while
- •Оператор for
- •Оператор do-while
- •Оператори переходу
- •Cтруктури
- •Об'єднання (суміші)
- •Робота з структурами.
- •Ініціалізація структур
- •Робота з обєднаннями
- •Визначення об'єктів та типів
- •Методи доступу до елементів масивів
- •Покажчики на багатовимірні масиви
- •Операції з вказівниками
- •Робота з покажчиками.
- •Покажчики на структуру
- •Масиви структур
- •Динамічне розміщення масивів
- •Робота з динамічними масивами
- •Робота з непрямою адресацією
- •Робота з покажчиками як параметрами функцій
- •Використання вказівників
- •Операції з вказівниками
- •Використання вказівників в програмі
- •Робота з файлами
- •Відкриття файлу
- •Обробка відкритого файлу
- •Перевірка ознаки кінця файлу
- •Закриття файлу
- •Функції введення-виведення
- •Робота з текстовими файлами
- •Функція форматованого виведення printf ()
- •Основні формати
- •Модифікації форматів
- •Функція форматованого введення scanf ()
- •Робота функції scanf ()
- •Призначеня функцій бібліотеки введення-виведення
- •Макрокоманди
- •Потокові інтерфейси введення-виведення
- •Ближні покажчики (near)
- •Дальні покажчики (far)
- •Покажчики huge
- •Функції для роботи з рядками
- •Динамічні рядки, клас string
- •Визначення поточної робочої директорії
- •Визначення поточного каталогу диска
- •Визначення / встановленн поточного диска
- •Пошук файлу
- •Створення, видалення, зміна директорій
- •Приклад програми для роботи з директоріями
- •Перегляд каталогу диска
- •Параметри структури ffblk
- •Робота з клавіатурою
- •Робота з файлами
- •Послідовний доступ до елементів двійкових файлів
- •Організація довільного доступу до елементів двійкових файлів
- •Робота динамічних структур даних.
- •Функції управління пам'яттю
- •Атрибути файлів.
- •Параметри
- •Динамічні структури даніх
- •Лінійні списки
- •Стек. Загальні поняття.
- •Приклад використання стеку
- •Основні визначення
- •Приклад використання дерев
Оператор вибору 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. Шпак З.Я. Програмування мовою С: Навчальний посібник. Львів: Оріяна-Нова, 2006. - 432 с –Стор 51-75
Урок №5
(згідно робочої навчальної програми)
Тема:Перерахування. Перетворення типів
Питання:
Перерахування типів
2. Перетворення типів
