Zalecane, 2021

Wybór Redakcji

Różnica między if-else i switch

"Jeśli-else" i "switch" oba są instrukcjami wyboru. Instrukcje wyboru przekazują przepływ programu do konkretnego bloku instrukcji w zależności od tego, czy warunek jest "prawdziwy", czy "fałsz". Podstawową różnicą między instrukcjami if-else i switch jest to, że instrukcja if-else "wybiera wykonanie instrukcji na podstawie oceny wyrażenia w instrukcjach if". Instrukcje switch "wybierają wykonanie instrukcji często w oparciu o polecenie klawiatury".

Wykres porównania

Podstawa do porównaniaJeśli inaczejprzełącznik
PodstawowyTo, która instrukcja zostanie wykonana, zależy od wyniku wyrażenia wewnątrz instrukcji if.O tym, która instrukcja zostanie wykonana, decyduje użytkownik.
WyrażenieInstrukcja if-else używa wielu instrukcji dla wielu wyborów.Instrukcja switch używa pojedynczego wyrażenia dla wielu wyborów.
Testowanietest polecenia else-else dla równości oraz dla wyrażenia logicznego.test instrukcji switch tylko dla równości.
OcenaInstrukcja if oblicza liczbę całkowitą, znak, wskaźnik lub typ zmiennoprzecinkowy lub typ boolowski.Instrukcja switch oblicza tylko wartość lub liczbę całkowitą.
Sekwencja wykonaniaAlbo instrukcja zostanie wykonana, albo instrukcja zostanie wykonana.instrukcja switch wykonuje jedną sprawę po drugiej, aż pojawi się instrukcja break lub osiągnięty zostanie koniec instrukcji switch.
Domyślna realizacjaJeśli warunek wewnątrz instrukcji if jest fałszywy, domyślnie wykonywana jest instrukcja else, jeśli została utworzona.Jeśli warunek wewnątrz instrukcji switch nie jest zgodny z żadnym z przypadków, dla tej instancji są wykonywane instrukcje domyślne, jeśli zostały utworzone.
RedagowanieTrudno jest edytować instrukcję if-else, jeśli używana jest instrukcja zagnieżdżona if-else.Łatwo jest edytować przełączniki, ponieważ są one łatwo rozpoznawane.

Definicja if-else

Instrukcje if-else należą do instrukcji wyboru w OOP. Ogólna forma instrukcji if-else jest następująca

 if (wyrażenie) {instrukcja (s)} else {instrukcja (s)} 

gdzie "if" i "else" są słowami kluczowymi, a instrukcje mogą być pojedynczą instrukcją lub blokiem instrukcji. Wyrażenie jest wartością "prawda" dla dowolnej wartości niezerowej, a dla wartości zerowej oznacza "fałsz".
Wyrażenie w instrukcji if może zawierać liczbę całkowitą, znak, wskaźnik, zmiennoprzecinkowe lub może być typem boolowskim. Instrukcja else jest opcjonalna w instrukcji if-else. Jeśli wyrażenie zwraca wartość true, instrukcje wewnątrz instrukcji if są wykonywane, a jeśli zwrócą wartość false, instrukcje wewnątrz instrukcji else zostaną wykonane, a jeśli instrukcja else nie zostanie utworzona, nie zostanie wykonana żadna akcja, a kontrola programu wyskoczy instrukcji if-else.

Pozwala nam zrozumieć na przykładzie.

 int i = 45, j = 34; if (i == 45 & j == 34) {cout << "i jyou wybieram ciemne choclate"; złamać; case 2: cout << "wybierasz cukierki"; złamać; case 3: cout << "wybierasz lollypop"; złamać; . . domyślna cout << "nic nie wybierasz"; } 

W tym przypadku wartość "i" decyduje, która sprawa ma zostać wykonana, jeśli użytkownik poda wartość "i" inną niż 1, 2 lub 3, wówczas wykonywany jest domyślny przypadek.

Kluczowe różnice między if-else i switch

  1. Wyrażenie wewnątrz instrukcji if decyduje o tym, czy wykonać instrukcje wewnątrz bloku, czy pod blokiem else. Z drugiej strony wyrażenie wewnątrz instrukcji switch decyduje o tym, która sprawa ma zostać wykonana.
  2. Możesz mieć wiele instrukcji if dla wielokrotnego wyboru instrukcji. W przełączniku masz tylko jedno wyrażenie dla wielu opcji.
  3. Instrukcja if-esle sprawdza równość i wyrażenie logiczne. Z drugiej strony przełączniki sprawdzają tylko dla równości.
  4. Instrukcja if oblicza liczbę całkowitą, znak, wskaźnik lub typ zmiennoprzecinkowy lub typ boolowski. Z drugiej strony, instrukcja switch oblicza tylko znak lub typ danych integer.
  5. Kolejność wykonywania jest jak instrukcja pod warunkiem, że zostanie wykonany blok lub gdy instrukcja else zostanie wykonana. Z drugiej strony wyrażenie w instrukcji switch decyduje o tym, która sprawa ma zostać wykonana, a jeśli nie zastosujesz instrukcji break po każdym przypadku, będzie ona wykonywana do końca instrukcji switch.
  6. Jeśli wyrażenie wewnątrz, jeśli zwroty są fałszywe, instrukcja wewnątrz bloku innego będzie wykonana. Jeśli wyrażenie wewnątrz instrukcji switch okaże się fałszywe, wówczas wykonywane są instrukcje domyślne.
  7. Trudno jest edytować instrukcje if-else, ponieważ nużące jest śledzenie, gdzie wymagana jest poprawka. Z drugiej strony można łatwo edytować instrukcje przełączników, ponieważ są one łatwe do śledzenia.

Wniosek:

Instrukcja switch jest łatwa do edycji, ponieważ tworzy oddzielne przypadki dla różnych instrukcji, podczas gdy w zagnieżdżonych instrukcjach if-else trudno jest zidentyfikować instrukcje do edycji.

Top