В презентації представлено розгалуження за багатьма гілками, розглядається оператор вибору switch, а також приклади використання оператора switch, в якому в якому є блок default, відсутній блок default і пропущені оператори break.
Розгалуження за багатьма гілками. Оператор вибору switch
Номер слайду 2
Розглянуті оператори умовного переходу здійснюють розгалуження за двома гілками. Приклад графічної схеми розгалуження з трьома гілками:
Номер слайду 3
Оператор вибору switch є подібний до оператора умовного переходу if–else. Він дозволяє організувати розгалуження процесу виконання в програмі. У деяких випадках використання оператора вибору switch дає більш компактний програмний код у порівняння з оператором умовного переходу if-else.
Номер слайду 4
Де:вираз – керуючий вираз, який може мати один з цілочисельних типів: byte, int, short, char або зчислений тип. У нових версіях JDK вираз може мати тип String.значення1, значення2, … , значення. N – константні вирази (літеральні значення). Кожне значення має бути сумісним за типом з вказаним виразом. Блок default може бути відсутній.
Номер слайду 5
Принцип роботи оператора switch. Оператор вибору switch працює наступним чином. Значення виразу порівнюється з кожним зі значень (значення1, значення2, …, значення. N), що слідують після ключового слова case. Якщо знайдено співпадіння, тоді виконуються оператори, що слідують після цієї частини case. Якщо в жодному з варіантів після case співпадіння не знайдено, тоді виконуються оператори, що йдуть в блоці default. Якщо блок default відсутній (може бути відсутній), тоді нічого не відбувається і виконується наступний оператор, що слідує за оператором switch. Оператор break необхідний для негайного виходу з оператора switch. Якщо виконується оператор break, тоді виконується наступний після switch оператор.
Номер слайду 6
1. Приклад використання оператору вибору switch, в якому є блок default. За заданим значенням n = 1..7 вивести назву відповідного дня тижня. Врахувати можливі помилкові значення n.
Номер слайду 7
Номер слайду 8
2. Приклад використання оператора switch, в якому пропущені оператори break. У даному прикладі за введеним значенням номера дня тижня n = 1..7 визначається вихідний цей день чи робочий.
Номер слайду 9
3. Приклад використання оператора switch, в якому відсутній блок default. Дано ціле число n = 1..3. За даним значенням змінної n визначити:довжину кола;площу круга;об’єм кулі.
Номер слайду 10
Вкладені інструкції switch. Приклад. У даному прикладі на основі номера року (year) та місяця (month) обчислюється кількість днів у місяці (змінна days). Задачу розв’язано з використанням вкладених операторів if та switch.
Номер слайду 11
Номер слайду 12
Переваги оператора switch у порівнянні з оператором if. У порівнянні з оператором if переваги оператора switch наступні:при виборі з великої групи значень оператор switch працює швидше ніж оператор if-else. Це зв’язано з тим, що в операторі switch константи усіх гілок case та вираз мають однаковий тип. Тому достатньо здійснити перевірку на рівніть. В операторі if-else компілятор наперед не знає типи результатів виразів у різних гілках порівняння, що потребує додаткових перетворень які займають час.у випадках коли виконується код для декількох операторів гілок case без вказання розділяючих їх операторів break.
Номер слайду 13
Недоліки оператора switch у порівнянні з оператором if. Порівняно з оператором if, оператор switch має такі недоліки:в операторі switch, у кожній гілці виконується перевірка тільки на рівність (пошук на співпадіння в гілці case). В операторі if у кожній гілці можна обчислювати будь-який логічний вираз будь-якого типу;в операторі switch вираз, що порівнюється може бути тільки типу int, зчисленням enum або типу String (починаючи з версії JDK 7). Вираз не може бути типом з плаваючою комою. В операторі if порівнюваний вираз може бути будь-якого типу;у двох різних гілках case константи не можуть мати однакові значення. Однакові значення у гілках case допускаються, якщо ці гілки розміщуються на різних рівнях вкладення у випадку вкладених операторів switch.