Porovnávacia tabuľka
Základ pre porovnanie | if-else | prepínač |
---|---|---|
základné | Ktoré vyhlásenie sa vykoná závisí od výstupu výrazu vo vnútri if. | Ktoré vyhlásenie bude vykonané rozhodne používateľ. |
vyjadrenie | príkaz if-else používa viacnásobné vyhlásenie pre viacero možností. | switch prepínač používa jeden výraz pre viac možností. |
testovanie | if-else test pre rovnosť i logický výraz. | test výkazu prepínačov iba pre rovnosť. |
ohodnotenie | ak vyhlásenie hodnotí celé číslo, znak, ukazovateľ alebo typ s pohyblivou čiarkou alebo booleovský typ. | prepínač hodnotí len hodnotu znaku alebo celú hodnotu. |
Postupnosť vykonávania | Buď ak sa vyhlásenie vykoná alebo iný príkaz sa vykoná. | prepínač spustiť jeden prípad za druhým, až sa objaví vyhlásenie break alebo sa dosiahne koniec výkazu prepínača. |
Predvolené spustenie | Ak je podmienka v prípade, že vyhlásenia sú nepravdivé, potom sa predvolene vykoná príkaz else, ak je vytvorený. | Ak sa podmienka vo vyhláseniach prepínača nezhoduje s niektorým z prípadov, pre danú inštanciu sa štandardné príkazy vykonajú, ak sú vytvorené. |
úpravy | Je ťažké upraviť príkaz if-else, ak sa použije vnorený príkaz if-else. | Jednoducho upravovať spínače, pretože sú ľahko rozpoznateľné. |
Definícia if-else
Príkazy if-else patria do výberových vyhlásení v OOP. Všeobecná forma vyhlásení if-else je nasledujúca
if (výraz) {príkaz (y)} else {príkaz (y)}
kde "if" a "else" sú kľúčové slová a vyhlásenia môžu byť jediným príkazom alebo blokom vyhlásení. Výraz sa považuje za "pravdivý" pre akúkoľvek nenulovú hodnotu a pre nulu sa hodnotí ako "nepravda".
Výraz v príkaze if môže obsahovať celé číslo, znak, ukazovateľ, pohyblivý bod alebo môže to byť booleovský typ. Príkaz else je voliteľný vo vyhlásení if-else. Ak sa výraz vráti pravdivý, príkazy vo vnútri, ak sa vykoná, a ak vráti falošné vyhlásenia vo vnútri iného vyhlásenia, vykonajú a v prípade, že iný príkaz nie je vytvorený, nevykoná sa žiadna akcia a kontrola programu vyskočí príkaz if-else.
Umožňuje nám to pochopiť pomocou príkladu.
int i = 45, j = 34; ak (i == 45 & j == 34) {cout << "ja si vyberiete tmavú choclate"; prestávka; prípad 2: cout << "si vyberiete cukrík"; prestávka; prípad 3: cout << "zvolíte lollypop"; prestávka;, , default cout << "nevyberiete nič"; }
Tu sa hodnota "i" rozhodne, ktorý prípad sa má vykonať, ak používateľ dáva hodnotu "i" inú ako 1, 2 alebo 3, potom sa vykoná predvolený prípad.
Kľúčové rozdiely medzi if-else a switch
- Výraz vo vnútri, ak vyhlásenie rozhodne, či sa má vykonať vyhlásenie vo vnútri bloku alebo pod iným blokom. Na druhej strane výraz vo vnútri prepínača rozhoduje o tom, ktorý prípad sa má vykonať.
- Môžete mať viacnásobný príkaz pre viacnásobný výber výpisov. V prepínači máte iba jeden výraz pre viacero možností.
- Príkaz if-esle kontroluje rovnosť i logický výraz. Na druhej strane, prepínač kontroluje iba rovnosť.
- Príkaz if hodnotí celé číslo, znak, ukazovateľ, typ s pohyblivou čiarkou alebo booleovský typ. Na druhej strane výkaz prepínača hodnotí iba typ znaku alebo celé číslo.
- Postupnosť vykonávania je buď ako vyhlásenie v prípade, ak sa blok vykoná, alebo príkazy pod iným blokovým výkazom sa vykonajú. Na druhej strane výraz vo výkaze prepínača rozhoduje o tom, ktorý prípad sa má vykonať a ak neuplatníte vyhlásenie o prerušení po každom prípade, vykoná sa až do konca výkazu prepínača.
- Ak je výraz vo vnútri v prípade, že sa obrátiť na nepravdivé, vykoná sa vyhlásenie vo vnútri iného bloku. Ak sa vyjadrenie vo vnútri prepínača stane nepravdivým, vykonajú sa predvolené príkazy.
- Je ťažké upraviť vyhlásenia if-else, pretože je namáhavé sledovať, kde je potrebná korekcia. Na druhej strane je ľahké editovať prepínače, pretože sú ľahko vysledovateľné.
záver:
Príkaz prepínača sa dá ľahko upraviť, pretože vytvára samostatné prípady pre rôzne výkazy, zatiaľ čo vo vnorených vyhláseniach if-else sa stáva ťažké určiť vyhlásenia, ktoré sa majú upraviť.