Rozdiel medzi if-else a switch
Obsah
„If-else“ a „switch“ sú výberové vyhlásenia. Príkazy na výber prenášajú tok programu do konkrétneho bloku príkazov na základe toho, či je podmienka „true“ alebo „false“. Základný rozdiel medzi príkazmi if-else a switch je v tom, že príkaz if-else „vyberie vykonanie príkazov na základe vyhodnotenia výrazu v príkazoch if“. Príkazy spínača „vyberajú vykonanie príkazu často na základe príkazu klávesnice“.
- Porovnávacia tabuľka
- definícia
- Kľúčové rozdiely
- záver
Porovnávacia tabuľka
Základ pre porovnanie | if-else | prepínač |
---|---|---|
základné | Ktorý príkaz sa vykoná, závisí od výstupu výrazu vo vnútri výrazu if. | O tom, ktoré vyhlásenie sa vykoná, rozhodne užívateľ. |
vyjadrenie | Príkaz if-else používa viac príkazov pre viacero možností. | Príkaz switch používa jeden výraz pre viac možností. |
testovanie | test príkazu if-else na rovnosť, ako aj na logické vyjadrenie. | test príkazu switch iba na dosiahnutie rovnosti. |
ohodnotenie | ak príkaz vyhodnocuje celé číslo, znak, ukazovateľ alebo typ s pohyblivou rádovou čiarkou alebo boolovský typ. | Príkaz switch vyhodnocuje iba znakovú alebo celočíselnú hodnotu. |
Postupnosť vykonania | Buď, ak sa príkaz vykoná, alebo sa vykoná iný príkaz. | príkaz switch vykoná jeden prípad za druhým, až kým sa neobjaví príkaz break alebo kým sa nedosiahne koniec príkazu switch. |
Predvolené vykonanie | Ak je podmienka vo vnútri príkazu nepravdivá, potom sa štandardne vykoná príkaz else, ak je vytvorený. | Ak podmienka vo vnútri príkazov prepínača nezodpovedá žiadnemu z týchto prípadov, pre tento prípad sa predvolené príkazy vykonajú, ak boli vytvorené. |
editácia | Je ťažké upraviť príkaz if-else, ak sa používa vnorený príkaz if-else. | Je ľahké upravovať prípady prepínačov, pretože sú ľahko rozpoznateľné. |
Definícia if-else
Príkazy if-else patria k výberovým príkazom v OOP. Všeobecná forma vyhlásení if-else je takáto
if (expression) {vyhlásenie (s)} else {vyhlásenie (s)}
kde „ak“ a „iné“ sú kľúčové slová a príkazy môžu byť jediným príkazom alebo blokom príkazov. Výraz sa hodnotí ako „pravdivý“ pre každú nenulovú hodnotu a pre nulu sa hodnotí ako „nepravdivý“.
Výraz v výraze if môže obsahovať celé číslo, znak, ukazovateľ, pohyblivú desatinnú čiarku alebo to môže byť boolovský typ. Príkaz else je voliteľný v príkaze if-else. Ak sa výraz vráti true, vykonajú sa príkazy vo vnútri, ak sa príkaz vykoná, a ak sa vráti nepravdivé, vykonajú sa príkazy vo vnútri inde, a v prípade, že sa nevytvorí iný príkaz, nevykonáva sa žiadna akcia a kontrola programu vyskočí vyhlásenia if-else.
Umožňuje nám to porozumieť príkladom.
int i = 45, j = 34; ak (i == 45 & j == 34) {cout << "i =" < Definícia prepínača
Príkazy prepínača sú príkazom na výber s viacerými možnosťami. Všeobecná forma príkazu switch je nasledovná
prepínač (výraz) {case const1: Statement (s); prestávka; prípadová konštanta2: vyhlásenie (s); prestávka; prípadová konštanta3: vyhlásenie (s); prestávka; , , predvolené výpisy; }
Kde výraz vyhodnocuje celočíselné alebo znakové konštanty. Výraz tu vyhodnocuje iba rovnosť. Výraz sa overuje na základe konštánt prítomných v príkazoch. Ak sa nájde zhoda, vykonajú sa príkazy súvisiace s týmto prípadom, až kým nenastane „prestávka“. Pretože príkaz break je v príkazoch prípadu voliteľný, ak príkaz break nie je prítomný, vykonávanie sa nezastaví až do konca príkazu switch.
Výraz obsahuje iba jeden výraz. Príkaz switch často používa príkaz z klávesnice na výber jedného z viacerých príkazov case.
int c; cout << "zvoľte hodnotu od 1 do 3"; cin >> i; prepínač (i) {prípad 1: cout << "zvolíte tmavý choclate"; prestávka; Prípad 2: Cout << „Vyberiete si cukroví“; prestávka; prípad 3: cout << "zvolíte lollypop"; prestávka; , , default cout << "nevyberiete nič"; }
Tu hodnota „i“ rozhodne, ktorý prípad sa má vykonať, ak užívateľ uvedie hodnotu „i“ inú ako 1, 2 alebo 3, vykoná sa predvolený prípad.
- Vyjadrenie vo vnútri výrazu if rozhodne, či sa majú vykonať príkazy vo vnútri bloku if alebo v inom bloku. Na druhej strane výraz vo vyhlásení o prepnutí rozhodne, ktorý prípad sa má vykonať.
- Pre viac príkazov môžete mať viac príkazov if. V prepínači máte iba jeden výraz pre viac možností.
- Príkaz if-esle kontroluje rovnosť, ako aj logické vyjadrenie. Na druhej strane prepínač kontroluje iba rovnosť.
- Príkaz if vyhodnocuje celé číslo, znak, ukazovateľ alebo typ s pohyblivou rádovou čiarkou alebo boolovský typ. Na druhej strane príkaz switch vyhodnocuje iba znakový alebo celočíselný údajový typ.
- Postupnosť vykonania je ako príkaz pod príkazom if, ak sa blok vykoná, alebo príkazom pod príkazom block, ktorý sa vykoná. Na druhej strane výraz v príkaze switch rozhodne, ktorý prípad sa má vykonať a ak nepoužijete príkaz break po každom prípade, vykoná sa až do konca príkazu switch.
- Ak je výraz vo vnútri, ak sa ukáže, že je nepravdivý, vykoná sa príkaz vo vnútri bloku inde. Ak sa ukáže, že výraz vo vnútri príkazu switch je nepravdivý, vykoná sa predvolený príkaz.
- Je ťažké upravovať príkazy if-else, pretože je náročné sledovať, kde je potrebná oprava. Na druhej strane je ľahké upravovať príkazy prepínača, pretože sa dajú ľahko sledovať.
záver:
Príkaz switch sa dá ľahko editovať, pretože vytvoril samostatné prípady pre rôzne príkazy, zatiaľ čo vo vnorených príkazoch if-else je ťažké identifikovať príkazy, ktoré sa majú upraviť.