Різниця між if-else та перемикачем
Зміст
"If-else" і "switch" - це заяви про вибір. Виписки вибору переносять потік програми на певний блок операторів на основі того, чи є умова "істинним" чи "хибним". Принципова відмінність між операторами if-else та switch полягає в тому, що оператор if-else "вибирає виконання операторів на основі оцінки виразу в операторах if". Оператори перемикача "вибирає виконання оператора часто на основі команди клавіатури".
- Порівняльна діаграма
- Визначення
- Ключові відмінності
- Висновок
Порівняльна діаграма
Основа для порівняння | якщо ще | перемикач |
---|---|---|
Основні | Який оператор буде виконаний, залежить від виводу виразу всередині if. | Яке твердження буде виконано, вирішує користувач. |
Вираз | if-else оператор використовує кілька операторів для декількох варіантів. | Оператор switch використовує один вираз для декількох варіантів. |
Тестування | if-else тест твердження на рівність, а також на логічне вираження. | переключити тест заяви тільки на рівність. |
Оцінка | якщо оператор оцінює ціле число, символ, покажчик або тип з плаваючою комою або булевий тип. | оператор switch оцінює лише значення символу або ціле число. |
Послідовність виконання | Або якщо оператор буде виконаний, або інший оператор виконаний. | Оператор перемикання виконує один випадок за іншим, поки не з'явиться заява про перерву або не буде досягнуто кінця оператора комутатора. |
Виконання за замовчуванням | Якщо умова всередині операторів false, тоді за замовчуванням виконується оператор else, якщо він створений. | Якщо умова операторів перемикання не відповідає жодному із випадків, для цього випадку оператори за замовчуванням виконуються, якщо вони створені. |
Редагування | Важко відредагувати оператор if-else, якщо використовується вкладений оператор if-else. | Редагувати випадкові комутатори легко, оскільки вони легко розпізнаються. |
Визначення if-else
Заяви if-else належать до заяв про вибір у OOP. Загальна форма тверджень if-else така
if (вираз) {statement (s)} else {заява (и)}
де "якщо" та "else" - це ключові слова, а висловлювання можуть бути одним висловлюванням або блоком висловлювань. Вираз оцінюється як "вірно" для будь-якого ненульового значення, а для нуля - "хибного".
Вираз у випадку, якщо оператор може містити ціле число, символ, вказівник, плаваюча точка або може бути булевим типом. Оператор else є необов’язковим у операторі if-else. Якщо вираз повертає істинне, висловлювання всередині, якщо оператор виконується, і якщо він повертає помилкові, то оператори всередині оператора else виконуються, і, якщо оператор else не створено, жодних дій не виконується, і управління програмою вискочить заяви if if else
Давайте розберемося на прикладі.
int i = 45, j = 34; якщо (i == 45 & j == 34) {cout << "i =" < Визначення вимикача
Оператори перемикання - оператор вибору множинного вибору. Загальна форма оператора переключення полягає в наступному
перемикач (вираз) {case Constant1: оператор (и); перерву; випадкова константа2: заява (и); перерву; константа справи3: заява (и); перерву; . . твердження (и) за замовчуванням; }
Де вираз оцінює цілі чи знакові константи. Вираз тут лише оцінює рівність. Вираз перевіряється по відношенню до констант, присутніх у твердженнях справи. Якщо буде знайдено збіг, заяви, пов'язані з цим випадком, виконуються, поки не відбудеться "розрив". Оскільки заява перерви є необов’язковою в операторах випадку, якщо тоді заява перерви відсутня, виконання не припиняється до кінця оператора перемикання.
Вираз містить лише один вираз. Оператор перемикача часто використовує команду клавіатури, щоб вибрати одну з декількох операторів регістру.
int c; cout << "оберіть значення від 1 до 3"; cin >> i; switch (i) {case 1: cout << "Ви вибираєте темний холат"; перерву; випадок 2: cout << "ви обираєте цукерки"; перерву; випадок 3: cout << "Ви вибираєте lollypop"; перерву; . . cout << "ти нічого не вибираєш"; }
Тут значення "i" визначає, який випадок потрібно виконати, якщо користувач надає значення "i", відмінне від 1, 2 або 3, тоді виконується випадок за замовчуванням.
- Вираження всередині, якщо оператор вирішує, чи виконувати оператори всередині блоку if блоку чи під блоком else З іншого боку, вираз всередині оператора switch вирішує, який випадок виконати.
- Ви можете мати декілька if, якщо заява для декількох варіантів вибору. У комутаторі у вас є лише один вираз для кількох варіантів.
- Оператор if-esle перевіряє рівність, а також логічне вираження. З іншого боку, перемикач перевіряє лише на рівність.
- Оператор if оцінює ціле число, символ, вказівник або тип з плаваючою комою або булевий тип. З іншого боку, оператор switch оцінює лише символ або цілий тип даних.
- Послідовність виконання - це як будь-який вислів, якщо блок буде виконуватися, або оператори під блоком else виконають. З іншого боку, вираз у операторі switch визначає, який випадок потрібно виконати, і якщо ви не застосовуєте оператор перерви після кожного випадку, він виконуватиметься до кінця оператора переключення.
- Якщо вираз всередині, якщо виявляється хибним, буде виконуватися оператор всередині блоку else. Якщо вираз всередині оператора switch виявляється помилковим, тоді виконується оператор за замовчуванням.
- Важко редагувати твердження if-else, оскільки нудно простежити, де потрібно виправити. З іншого боку, легко редагувати заяви переключення, оскільки їх легко відстежити.
Висновок:
Оператор перемикання легко редагувати, оскільки він створив окремі випадки для різних висловлювань, тоді як у вкладених операторах if-else стає важко ідентифікувати заяви, які слід редагувати.