Doporučená, 2021

Redakce Choice

Rozdíl mezi if-else a switchem

„If-else“ a „switch“ jsou oba výběry. Výběry příkazů přenášejí tok programu na konkrétní blok příkazů na základě toho, zda je podmínka „true“ nebo „false“. Základním rozdílem mezi příkazy if-else a switch je, že příkaz if-else „vybírá provedení příkazů na základě vyhodnocení výrazu v příkazech if“. Příkazy switchu „vybírají příkazy často na základě příkazu klávesnice“.

Srovnávací graf

Základ pro porovnáníif-elsepřepínač
ZákladníKterý příkaz bude proveden závisí na výstupu výrazu uvnitř příkazu if.Který příkaz bude proveden, rozhodne uživatel.
Výrazpří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í o rovnosti a logickém vyjádření.příkaz switch switch test pouze pro rovnost.
Hodnoceníif příkaz vyhodnocuje celé číslo, znak, ukazatel nebo plovoucí bod nebo booleovský typ.příkaz switch vyhodnocuje pouze znakovou nebo celočíselnou hodnotu.
Sekvence exekuceBuď pokud bude příkaz proveden nebo je proveden příkaz else.příkaz switch provede jeden případ za druhým, dokud se neobjeví prohlášení o přerušení nebo dokud není dosaženo konce příkazu switch.
Výchozí provedeníJe-li podmínka uvnitř příkazu if nepravdivá, pak je ve výchozím nastavení proveden příkaz else, pokud je vytvořen.Pokud se podmínka v příkazech přepínače neshoduje s žádným z případů, je pro tuto instanci proveden výchozí příkaz, pokud byl vytvořen.
ÚpravaJe obtížné upravit příkaz if-else, pokud je použit vnořený příkaz if-else.Je snadné editovat případy přepínačů, protože jsou snadno rozpoznatelné.

Definice if-else

Příkazy if-else patří do příkazů výběru v OOP. Obecná podoba příkazů if-else je následující

 if (expression) {příkaz (y)} else {příkaz (y)} 

kde „if“ a „else“ jsou klíčová slova a výpisy mohou být jedním výpisem nebo blokem výpisů. Výraz je pro každou nenulovou hodnotu vyhodnocen jako „true“ a pro nulu je „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 nepovinný v příkazu if-else. Pokud výraz vrátí hodnotu true, příkazy v příkazu if se provedou, a pokud vrátí hodnotu false, příkazy v příkazu else se provedou a v případě, že příkaz else není vytvořen, neprovádí se žádná akce a řízení programu se vyskočí příkazu if-else.

Umožňuje nám pochopit příklad.

 int i = 45, j = 34; if (i == 45 & j == 34) {cout << "i jyou vybrat tmavý choclate"; přestávka; případ 2: cout << "zvolíte bonbón"; přestávka; případ 3: cout << "zvolíte lollypop"; přestávka; . . default cout << "nevyberete nic"; } 

Zde se hodnota „i“ rozhodne, který případ se má provést, pokud uživatel zadá hodnotu „i“ jinou než 1, 2 nebo 3, provede se výchozí případ.

Klíčové rozdíly Mezi if-else a switch

  1. Výraz uvnitř, pokud příkaz rozhoduje, zda mají být příkazy provedeny v bloku bloku nebo pod jiným blokem. Na druhé straně výraz uvnitř příkazu switch určuje, který případ má provést.
  2. Pro vícenásobný výběr příkazů můžete mít více příkazů if. V přepínači máte pouze jeden výraz pro více možností.
  3. Příkaz if-esle kontroluje rovnost i logické vyjádření. Na druhé straně přepněte kontroly pouze na rovnost.
  4. Příkaz if vyhodnocuje celé číslo, znak, ukazatel nebo plovoucí bod nebo typ boolean. Na druhé straně příkaz switch vyhodnocuje pouze znak nebo datový typ celé číslo.
  5. Sekvence provádění je stejná jako u příkazu v případě, že se bude provádět blok nebo příkazy pod příkazem bloku se budou provádět. Na druhé straně výraz v příkazu switch rozhoduje, který případ má být proveden, a pokud po každém případu nepoužijete příkaz break, provede se do konce příkazu switch.
  6. Pokud je výraz uvnitř, pokud se jedná o false, proveden příkaz uvnitř jiného bloku. Pokud se výraz uvnitř příkazu switch změní na hodnotu false, provede se výchozí příkaz.
  7. Je obtížné editovat příkazy if-else, protože je obtížné sledovat, kde je požadována oprava. Na druhou stranu je snadné editovat příkazy switchů, 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.

Top