Rozdíl mezi if-else a switch

Autor: Laura McKinney
Datum Vytvoření: 3 Duben 2021
Datum Aktualizace: 5 Smět 2024
Anonim
Rozdíl mezi if-else a switch - Technologie
Rozdíl mezi if-else a switch - Technologie

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“.

  1. Srovnávací tabulka
  2. Definice
  3. Klíčové rozdíly
  4. Závěr

Srovnávací tabulka

Základ pro srovnánípokud-jindepř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ý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í 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.
ÚpravyJe 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.

  1. 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.
  2. 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í.
  3. Příkaz if-esle kontroluje rovnost i logický výraz. Na druhé straně přepínač kontroluje pouze rovnost.
  4. 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.
  5. 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.
  6. 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.
  7. 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.