
Діаграма порівняння
Основа для порівняння | if-else | перемикач |
---|---|---|
Основний | Яка операція буде виконуватися, залежить від виводу виразу, що знаходиться в операторі if. | Яке твердження буде виконано користувачем. |
Вираз | Оператор if-else використовує кілька операторів для декількох варіантів вибору. | оператор switch використовує один вираз для декількох варіантів вибору. |
Тестування | тест if-else для рівності, а також для логічного виразу. | перевірка оператора switch тільки для рівності. |
Оцінка | якщо оператор оцінює ціле число, символ, покажчик або тип з плаваючою точкою або логічний тип. | оператор switch оцінює тільки символ або ціле значення. |
Послідовність виконання | Або виконується оператор, або виконується оператор. | оператор switch виконує один випадок за іншим, доки не з'явиться оператор break або не буде досягнуто завершення оператора switch. |
Виконання за умовчанням | Якщо умова всередині, якщо оператор false, то за замовчуванням виконується операція else, якщо вона створена. | Якщо умова всередині операторів комутації не збігається з жодним з випадків, для цього екземпляра виконуються операції за замовчуванням, якщо вони створені. |
Редагування | Важко редагувати оператор if-else, якщо використовується вкладене твердження if-else. | Легко редагувати випадки перемикання, так як вони легко розпізнаються. |
Визначення if-else
Операції if-else належать до операцій вибору в ООП. Загальний вигляд тверджень if-else є наступним
if (expression) {statement (s)} else {оператор (и)}
де "if" і "else" є ключовими словами, а твердження можуть бути однією операцією або блоком операторів. Вираз обчислюється як "істина" для будь-якого ненульового значення, а для нуля - "помилковим".
Вираз у операторі if може містити ціле число, символ, покажчик, плаваючу крапку або може бути булевим типом. Оператор else не є обов'язковим у операторі if-else. Якщо вираз повертає true, оператори в тому випадку, якщо виконується оператор, і якщо воно повертає помилкові оператори в іншому, виконуються операції і, у випадку, якщо інша операція не створена, не виконується жодного дії, а керування програмою вискакує оператора if-else.
Дозволяє нам зрозуміти з прикладом.
int i = 45, j = 34; якщо (i == 45 & j == 34) {cout << "i jyou вибрати темний choclate"; перерву; case 2: cout << "ви вибираєте цукерки"; перерву; case 3: cout << "ви вибираєте lollypop"; перерву; . . default cout << "ви нічого не вибираєте"; }
Тут значення «i» визначає, який випадок повинен бути виконаний, якщо користувач дає значення «i», відмінне від 1, 2 або 3, тоді виконується випадок за замовчуванням.
Ключові відмінності між if-else та комутатором
- Вираз у внутрішньому випадку, якщо оператор вирішить, чи виконувати оператори в блоці блоку або в блоці else. З іншого боку, вираз всередині оператора switch вирішує, який випадок буде виконано.
- Ви можете мати кілька операторів if для множинного вибору операторів. У комутаторі є лише один вираз для декількох варіантів вибору.
- Вираз if-esle перевіряє рівність, а також для логічного виразу. З іншого боку, перемикайте перевірку лише на рівність.
- Оператор if визначає ціле число, символ, покажчик або тип з плаваючою точкою або логічний тип. З іншого боку, оператор switch оцінює тільки символ або цілочисельний тип даних.
- Послідовність виконання подібна до будь-якої операції, якщо блок буде виконуватися, або буде виконуватися оператор в іншому блоці. З іншого боку, вираз в операторі switch вирішує, який випадок буде виконано, і якщо ви не застосуєте оператор break після кожного випадку, він буде виконуватися до кінця оператора switch.
- Якщо вираз всередині, якщо виходи будуть помилковими, буде виконуватися операція inside else block. Якщо вираз всередині виразу комутатора виявляється помилковим, то виконуються стандартні оператори.
- Важко редагувати висловлювання if-else, оскільки це важко простежити, де потрібна корекція. З іншого боку, легко редагувати висловлювання перемикачів, оскільки їх легко відслідковувати.
Висновок:
Оператор switch легко редагувати, оскільки він створив окремі випадки для різних операторів, тоді як у вкладених твердженнях if-else стає важко визначити оператори, які потрібно редагувати.