Különbség az if-else és a váltás között
Tartalom
A „If-else” és a „switch” egyaránt kiválasztási nyilatkozatok. A kiválasztási utasítások átviszik a program folyamatát az adott mondatblokkba annak alapján, hogy a feltétel „igaz” vagy „hamis”. Az if-else és a switch állítások közötti alapvető különbség az, hogy az if-else utasítás „az utasítások végrehajtását választja ki az if-utasítások kifejezésének kiértékelése alapján”. A kapcsoló utasítások „kiválasztják az utasítás végrehajtását, gyakran billentyűzet parancs alapján”.
- Összehasonlító táblázat
- Meghatározás
- Főbb különbségek
- Következtetés
Összehasonlító táblázat
Az összehasonlítás alapja | ha más | kapcsoló |
---|---|---|
Alapvető | Az, hogy melyik utasítás kerül végrehajtásra, az if utasításon belüli kifejezés kimenetétől függ. | A végrehajtandó nyilatkozatot a felhasználó dönt. |
Kifejezés | Az if-else utasítás több állítást használ több választáshoz. | A switch utasítás egyetlen kifejezést használ több választáshoz. |
Tesztelés | if-else állításteszt az egyenlőség és a logikai kifejezés szempontjából. | kapcsoló utasítás tesztet csak az egyenlőség érdekében. |
Értékelés | ha az utasítás értéke egész, karakter, mutató vagy lebegőpontos vagy logikai típus. | A switch utasítás csak a karakter vagy az egész értéket értékeli. |
A végrehajtás sorrendje | Vagy ha az utasítás végrehajtásra kerül, vagy ha az végrehajtásra kerül. | A kapcsoló utasítás végrehajtja az egyes eseteket a másik után, amíg meg nem jelenik a törés utasítás, vagy nem érkezik a kapcsoló utasítás vége. |
Alapértelmezett végrehajtás | Ha a nyilatkozatokban szereplő feltétel hamis, akkor alapértelmezés szerint a else utasítás kerül végrehajtásra, ha létrejön. | Ha a kapcsoló utasításokon belüli feltétel nem egyezik meg az egyik esettel, akkor az alapértelmezett utasítások végrehajtásra kerülnek, ha létrejönnek. |
Szerkesztés | Nehéz szerkeszteni az if-else utasítást, ha a beágyazott if-else utasítást használjuk. | Könnyű szerkeszteni a kapcsoló eseteket, mivel ezeket könnyen felismerik. |
Az if-else meghatározása
Az if-else utasítások az OOP kiválasztási utasításaihoz tartoznak. Az if-else állítások általános formája a következő
if (kifejezés) {nyilatkozat (ok)} egyéb {nyilatkozat (ok)}
ahol „ha” és „egyéb” a kulcsszavak, és az állítások lehetnek egyetlen állítások vagy mondatok blokkjai. A kifejezés „igaznak” bizonyul minden nullán kívüli értéknél, és nulla esetében hamisnak értékeli.
Az if kifejezésben szereplő kifejezés tartalmazhat egész számot, karaktert, mutatót, lebegőpontot, vagy lehet logikai típusú. A else utasítás opcionális az if-else utasításban. Ha a kifejezés visszatér igaz, akkor a kijelentések végrehajtásakor az utasítások belül hamisnak bizonyulnak, az egyéb utasításban lévő utasítások végrehajtásra kerülnek, és ha egy másik utasítás nem létrejön, akkor nem hajtják végre a műveletet, és a program irányítása kiugrik egy if-else nyilatkozatot.
Lehetővé teszi, hogy megértsük egy példával.
int i = 45, j = 34; if (i == 45 & j == 34) {cout << "i =" < A kapcsoló meghatározása
A kapcsoló utasítások feleletválasztós választási utasítás. A váltási nyilatkozat általános formája a következő
kapcsoló (kifejezés) {eset állandó1: állítás (ok); szünet; esettanál2: állítás (ok); szünet; eset állandó3: állítás (ok); szünet; . . alapértelmezett nyilatkozat (ok); }
Ahol a kifejezés egész számot vagy karakterállandókat értékel. Az itt szereplő kifejezés csak az egyenlőség szempontjából értékeli. A kifejezést az esetleírásokban szereplő állandókkal ellenőrzik. Ha egyezés található, akkor az adott esethez kapcsolódó állítások kerülnek végrehajtásra, amíg „szünet” meg nem történik. Mivel a törés utasítás opcionális az eseti utasításokban, ha a törés utasítás nincs jelen, akkor a végrehajtás a kapcsoló utasítás végéig nem áll le.
A kifejezés csak egyetlen kifejezést tartalmaz. A kapcsoló utasítás gyakran billentyűzet parancsot használ, hogy válasszon egyet a több esetnyi állítás közül.
int c; cout << "válassza az értéket 1-3-ig"; cin >> i; kapcsoló (i) {1. eset: cout << "sötét csokoládét választasz"; szünet; 2. eset: cout << "Ön cukorkát választ"; szünet; 3. eset: cout << "Ön választja a lollypopot"; szünet; . . alapértelmezett cout << "semmit nem választ"; }
Itt az „i” értéke határozza meg, hogy mely esetet kell végrehajtani, ha a felhasználó az „i” értéket adja meg, az 1., 2. vagy 3. kivételével, akkor az alapértelmezett eset kerül végrehajtásra.
- Kifejezés belül, ha az utasítás eldönti, hogy végrehajtja-e az utasításokat blokkban vagy más blokk alatt. Másrészt a kapcsoló utasításban szereplő kifejezés dönt arról, hogy mely esetet kell végrehajtani.
- Többféle kijelentés esetén többféle utasítás is lehet. A kapcsolónál csak egy kifejezés van a választáshoz.
- Az if-esle utasítás ellenőrzi az egyenlőséget és a logikai kifejezést. Másrészt a kapcsoló csak az egyenlőség ellenőrzésére irányul.
- Az if utasítás egész számot, karaktert, mutatót vagy lebegőpontos vagy logikai típust értékel. Másrészt a switch utasítás csak a karaktereket vagy egy egész adattípust értékeli.
- A végrehajtás szekvenciája olyan, mintha bármelyik utasítás alatt lenne, ha a blokk végre fog hajtani, vagy pedig a másik blokk utasítása végrehajtja. Másrészt a kapcsoló utasításban szereplő kifejezés dönti el, hogy melyik esetet hajtja végre, és ha nem alkalmaz szüneteltetést minden egyes eset után, akkor a kapcsoló utasítás végéig fog végrehajtani.
- Ha a kifejezés hamisnak bizonyul, akkor hamis lesz, akkor az egyéb blokkban lévő utasítás kerül végrehajtásra. Ha a kapcsoló utasításban szereplő kifejezés hamisnak bizonyul, akkor az alapértelmezett utasítások kerülnek végrehajtásra.
- Nehéz szerkeszteni az if-else állításokat, mivel unalmas nyomon követni, hogy hol szükséges a javítás. Másrészt a kapcsoló utasítások szerkesztése egyszerű, mivel könnyen követhetők.
Következtetés:
A kapcsoló utasítás könnyen szerkeszthető, mivel különálló esetekben hozta létre a különféle utasításokat, míg a beágyazott if-else utasításokban nehéz lesz azonosítani a szerkesztendő utasításokat.