Różnica między if-else a przełącznikiem
Zawartość
„If-else” i „switch” to instrukcje wyboru. Instrukcje wyboru przenoszą przepływ programu do określonego bloku instrukcji na podstawie tego, czy warunek jest „prawdziwy”, czy „fałszywy”. 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 na podstawie polecenia z klawiatury”.
- Wykres porównania
- Definicja
- Kluczowe różnice
- Wniosek
Wykres porównania
Podstawa do porównania | Jeśli inaczej | przełącznik |
---|---|---|
Podstawowy | To, która instrukcja zostanie wykonana, zależy od wyniku wyrażenia znajdującego się w instrukcji if. | O tym, które polecenie zostanie wykonane, decyduje użytkownik. |
Wyrażenie | Instrukcja if-else używa wielu instrukcji do wielu wyborów. | Instrukcja switch używa pojedynczego wyrażenia do wielokrotnego wyboru. |
Testowanie | test instrukcji if-else dla równości, a także dla wyrażenia logicznego. | test instrukcji switch tylko na równość. |
Ocena | instrukcja if ocenia liczbę całkowitą, znak, wskaźnik lub typ zmiennoprzecinkowy lub typ boolowski. | Instrukcja switch ocenia tylko wartość znakową lub całkowitą. |
Sekwencja wykonania | Albo jeśli 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ślne wykonanie | Jeśli warunek wewnątrz instrukcji if jest fałszywy, wówczas domyślnie instrukcja else jest wykonywana, jeśli zostanie utworzona. | Jeśli warunek w instrukcjach przełącznika nie pasuje do żadnego z przypadków, dla tego wystąpienia instrukcje domyślne są wykonywane, jeśli zostaną utworzone. |
Redagowanie | Edycja instrukcji if-else jest trudna, jeśli używana jest zagnieżdżona instrukcja if-else. | Edytowanie skrzynek przełączników jest łatwe, ponieważ łatwo je rozpoznać. |
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 (y)} else {instrukcja (y)}
gdzie „if” i „else” to słowa kluczowe, a instrukcje mogą być pojedynczymi instrukcjami lub blokiem instrukcji. Wyrażenie ocenia się na „prawda” dla każdej wartości niezerowej, a dla zera na „fałsz”.
Wyrażenie w instrukcji if może zawierać liczbę całkowitą, znak, wskaźnik, zmiennoprzecinkowy lub może być typu logicznego. Instrukcja else jest opcjonalna w instrukcji if-else. Jeśli wyrażenie zwraca true, instrukcje wewnątrz instrukcji if są wykonywane, a jeśli zwraca false, instrukcje wewnątrz instrukcji else są wykonywane, a jeśli instrukcja else nie jest tworzona, nie jest wykonywana żadna czynność, a kontrola programu wyskakuje instrukcji if-else.
Pozwala nam zrozumieć na przykładzie.
int i = 45, j = 34; if (i == 45 & j == 34) {cout << "i =" < Definicja przełącznika
Instrukcje przełączania to instrukcje wyboru wielokrotnego wyboru. Ogólna forma instrukcji switch jest następująca
switch (wyrażenie) {case constant1: instrukcja (instrukcje); przerwa; case constant2: instrukcja (-y); przerwa; case constant3: instrukcja (-y); przerwa; . . domyślne oświadczenie; }
Gdzie wyrażenie ocenia liczbę całkowitą lub stałe znakowe. Wyrażenie tutaj ocenia tylko równość. Wyrażenie jest weryfikowane względem stałych obecnych w instrukcjach case. Jeśli zostanie znalezione dopasowanie, instrukcje powiązane z tą sprawą są wykonywane, dopóki nie nastąpi „przerwa”. Ponieważ instrukcja break jest opcjonalna w instrukcjach case, jeśli instrukcja break nie jest obecna, wykonanie nie kończy się do końca instrukcji switch.
Wyrażenie zawiera tylko jedno wyrażenie. Instrukcja switch często używa polecenia klawiatury, aby wybrać jedną z wielu instrukcji case.
int c; cout << „wybierz wartość od 1 do 3”; cin >> i; przełącznik (i) {przypadek 1: cout << „wybierasz ciemną czekoladę”; przerwa; przypadek 2: cout << „wybierasz cukierki”; przerwa; przypadek 3: cout << „wybierasz lollypop”; przerwa; . . domyślne cout << „nic nie wybierasz”; }
Tutaj wartość „i” decyduje, który przypadek ma zostać wykonany, jeśli użytkownik poda wartość „i” inną niż 1, 2 lub 3, wówczas wykonywana jest sprawa domyślna.
- Wyrażenie wewnątrz instrukcji if decyduje, czy wykonać instrukcje wewnątrz bloku if, czy w bloku else. Z drugiej strony wyrażenie w instrukcji switch decyduje, który przypadek ma zostać wykonany.
- Możesz mieć wiele instrukcji if dla wielokrotnego wyboru instrukcji. W przełączniku masz tylko jedno wyrażenie dla wielu opcji.
- Instrukcja if-esle sprawdza równość, a także wyrażenie logiczne. Z drugiej strony, przełącznik sprawdza tylko równość.
- Instrukcja if ocenia liczbę całkowitą, znak, wskaźnik lub typ zmiennoprzecinkowy lub typ boolowski. Z drugiej strony instrukcja switch ocenia tylko typ danych znak lub liczbę całkowitą.
- Kolejność wykonywania jest podobna do dowolnej instrukcji, jeśli blok zostanie wykonany, lub instrukcji w innym przypadku instrukcja bloku zostanie wykonana. Z drugiej strony wyrażenie w instrukcji switch decyduje, który przypadek ma zostać wykonany, a jeśli nie zastosujesz instrukcji break po każdym przypadku, będzie on wykonywany do końca instrukcji switch.
- Jeśli wyrażenie w środku okaże się fałszywe, zostanie wykonana instrukcja wewnątrz bloku else. Jeśli wyrażenie wewnątrz instrukcji switch okaże się fałszywe, wówczas wykonywane są instrukcje domyślne.
- Edycja instrukcji if-else jest trudna, ponieważ śledzenie, gdzie wymagana jest korekta, jest uciążliwe. Z drugiej strony łatwo jest edytować instrukcje przełączników, ponieważ można je łatwo prześledzić.
Wniosek:
Instrukcja switch jest łatwa do edycji, ponieważ stworzyła osobne przypadki dla różnych instrukcji, natomiast w zagnieżdżonych instrukcjach if-else trudno jest zidentyfikować instrukcje do edycji.