Rozdíl mezi if-else a switch
Obsah
„If-else“ a „switch“ jsou příkazy výběru. Příkazy výběru přenášejí tok programu do konkrétního bloku příkazů na základě toho, zda je podmínka „true“ nebo „false“. Zásadní rozdíl mezi příkazy if-else a switch je v tom, že příkaz if-else „vybírá provedení příkazů na základě vyhodnocení výrazu v příkazech if“. Příkazy přepínače „vybírají provádění příkazu často na základě příkazu z klávesnice“.
- Srovnávací tabulka
- Definice
- Klíčové rozdíly
- Závěr
Srovnávací tabulka
Základ pro srovnání | pokud-jinde | přepínač |
---|---|---|
Základní | Který příkaz bude proveden, závisí na výstupu výrazu uvnitř if if. | O tom, který příkaz bude proveden, rozhoduje uživatel. |
Výraz | Příkaz if-else používá více příkazů pro více možností. | Příkaz switch používá jeden výraz pro více možností. |
Testování | if-else prohlášení test pro rovnost, stejně jako pro logické vyjádření. | test příkazu switch pouze pro rovnost. |
Hodnocení | pokud příkaz vyhodnocuje celé číslo, znak, ukazatel nebo typ s pohyblivou řádovou čárkou nebo booleovský typ. | Příkaz switch vyhodnocuje pouze znakovou nebo celočíselnou hodnotu. |
Pořadí exekucí | Buď bude příkaz proveden, nebo bude proveden příkaz. | příkaz switch provádí jeden případ za druhým, dokud se neobjeví příkaz break nebo dokud není dosaženo konce příkazu switch. |
Výchozí provedení | Pokud je podmínka uvnitř, pokud jsou příkazy nepravdivé, pak se ve výchozím nastavení provede příkaz else, pokud je vytvořen. | Pokud se podmínka uvnitř příkazů přepínače neshoduje s žádným z případů, jsou pro tuto instanci provedeny výchozí příkazy, pokud byly vytvořeny. |
Úpravy | Je obtížné upravit příkaz if-else, pokud se používá vnořený příkaz if-else. | Je snadné editovat případy přepínačů, protože jsou snadno rozpoznány. |
Definice if-else
Příkazy if-else patří k příkazům pro výběr v OOP. Obecná podoba prohlášení if-else je následující
if (expression) {Statement (s)} else {Statement (s)}
kde „pokud“ a „jinde“ jsou klíčová slova a příkazy mohou být jediným příkazem nebo blokem příkazů. Výraz je vyhodnocen jako „true“ pro jakoukoli nenulovou hodnotu a pro nulu je vyhodnocen jako „false“.
Výraz v příkazu if může obsahovat celé číslo, znak, ukazatel, plovoucí desetinnou čárku nebo to může být booleovský typ. Příkaz else je v příkazu if-else volitelný. Pokud výraz vrací true, jsou příkazy uvnitř, pokud je vykonán příkaz, a pokud vrací false, jsou provedeny příkazy uvnitř else, a v případě, že není příkaz vytvořen, není provedena žádná akce a řízení programu vyskočí prohlášení if-else.
Umožňuje nám to pochopit na příkladu.
int i = 45, j = 34; if (i == 45 & j == 34) {cout << "i =" < Definice spínače
Příkazy přepínače jsou příkazy výběru s více možnostmi výběru. Obecná podoba příkazu switch je následující
switch (expression) {case const1: Statement (s); přestávka; case const2: Statement (s); přestávka; case const3: Statement (s); přestávka; . . výchozí příkazy; }
Kde výraz vyhodnocuje celočíselné nebo znakové konstanty. Výraz zde vyhodnocuje pouze rovnost. Výraz je ověřen proti konstantám přítomným v příkazech. Pokud je nalezena shoda, jsou prováděny příkazy spojené s tímto případem, dokud nenastane „přestávka“. Protože příkaz break je nepovinný v příkazech case, pokud příkaz break není přítomen, provádění se nezastaví až do konce příkazu switch.
Výraz obsahuje pouze jeden výraz. Příkaz switch často používá příkaz z klávesnice k výběru jednoho z více příkazů case.
int c; cout << "zvolte hodnotu od 1 do 3"; cin >> i; switch (i) {case 1: cout << "si vyberete tmavý choclate"; přestávka; případ 2: cout << "vyberete cukroví"; přestávka; případ 3: cout << "vyberete lollypop"; přestávka; . . default cout << "nevyberete nic"; }
Zde hodnota „i“ rozhodne, který případ se má provést, pokud uživatel uvede hodnotu „i“ jinou než 1, 2 nebo 3, provede se výchozí případ.
- Výraz uvnitř příkazu if rozhoduje, zda se příkazy mají provádět uvnitř bloku block nebo under else. Na druhé straně výraz uvnitř příkazu switch rozhoduje, který případ má být proveden.
- Můžete mít více příkazů if, pokud chcete vybrat více příkazů. Ve spínači máte pouze jeden výraz pro více možností.
- Příkaz if-esle kontroluje rovnost i logický výraz. Na druhé straně přepínač kontroluje pouze rovnost.
- Příkaz if vyhodnocuje celé číslo, znak, ukazatel nebo typ s pohyblivou řádovou čárkou nebo booleovský typ. Na druhé straně příkaz switch vyhodnocuje pouze znakový nebo celočíselný datový typ.
- Posloupnost provedení je jako příkaz pod příkazem if, pokud se blok provede, nebo příkazy pod jiným příkazem block. Na druhou stranu výraz v příkazu switch rozhoduje, který případ má být proveden, a pokud nepoužijete příkaz break po každém případě, provede se až do konce příkazu switch.
- Pokud je výraz uvnitř, pokud se ukáže, že je nepravdivý, bude proveden příkaz uvnitř bloku. Pokud se výraz uvnitř příkazu switch ukáže jako nepravdivý, provedou se výchozí příkazy.
- Je obtížné upravovat příkazy if-else, protože je únavné sledovat, kde je požadována oprava. Na druhé straně je snadné upravovat příkazy přepínače, protože je lze snadno sledovat.
Závěr:
Příkaz switch je snadno editovatelný, protože vytvořil samostatné případy pro různé příkazy, zatímco ve vnořených příkazech if-else je obtížné identifikovat příkazy, které mají být upraveny.