Skillnad mellan if-else och switch

Författare: Laura McKinney
Skapelsedatum: 3 April 2021
Uppdatera Datum: 23 April 2024
Anonim
Рефакторинг: switch vs if-else vs enum vs HashMap [Шаблон "Команда"]
Video: Рефакторинг: switch vs if-else vs enum vs HashMap [Шаблон "Команда"]

Innehåll


"If-else" och "switch" är båda urvalssatserna. Urvalet uttalanden, överföra flödet av programmet till det specifika blocket av uttalanden baserat på om villkoret är "sant" eller "falskt". Den grundläggande skillnaden mellan uttalanden if-else och switch är att uttalandet om-annars "väljer exekveringen av uttalanden baserat på utvärderingen av uttrycket i if-uttalanden". Switch-uttalandena "väljer utförandet av uttalandet ofta baserat på ett tangentbordskommando".

  1. Jämförelsediagram
  2. Definition
  3. Viktiga skillnader
  4. Slutsats

Jämförelsediagram

Grund för jämförelseom annatväxla
GrundläggandeVilket uttalande som kommer att köras beror på utgången från uttrycket inuti om uttalandet.Vilket uttalande som kommer att utföras avgörs av användaren.
Uttryckif-else-uttalande använder flera uttalanden för flera val.switch statement använder ett enda uttryck för flera val.
Testningom-annars uttalande test för jämlikhet såväl som för logiskt uttryck.växla uttalande test endast för jämlikhet.
Utvärderingom uttalande utvärderar heltal, karaktär, pekare eller flytpunkttyp eller boolesk typ.switch-uttalande utvärderar endast tecken- eller heltalvärdet.
Sekvens av utförandeAntingen om uttalandet kommer att köras eller så uttalas ett uttalande.växla uttalande verkställa ett fall efter det andra tills ett brytande uttalande dyker upp eller slutet av switch uttalande har uppnåtts.
StandardutförandeOm villkoret inuti om uttalanden är felaktigt, körs annars uttalandet om det skapas.Om villkoret i switch-uttalanden inte stämmer med något av fallen exekveras standardinställningarna om de skapas.
redigeraDet är svårt att redigera if-else-uttalandet, om det kapslade if-annat-uttalandet används.Det är lätt att redigera växelfall eftersom de känns igen lätt.

Definition av om-annars

Uttalningarna om annars hör till urvalsuttalanden i OOP. Den allmänna formen av if-annars uttalanden är som följer


if (uttryck) {uttal (er)} annat {uttal (er)}

där “om” och “annat” är nyckelorden, och uttalandena kan vara ett enda uttalande eller ett block med uttalanden. Uttrycket utvärderar att vara "sant" för alla icke-nollvärden och för noll utvärderar det att vara "falskt".
Uttrycket i if-uttalande kan innehålla ett heltal, tecken, pekare, flytande punkt eller det kan vara en boolesk typ. Det andra uttalandet är valfritt i ett uttalande om annat. Om uttrycket returnerar sant, exekveras påståenden inuti om uttalande körs, och om det returnerar falskt utförs uttalanden inuti annat uttalande, och om ett annat uttalande är ett inte skapat utförs ingen åtgärd, och kontrollen av programmet hoppar ut av ett uttalande om annat.

Låter oss förstå med ett exempel.

int i = 45, j = 34; if (i == 45 & j == 34) {cout << "i =" <

Definition av switch

Växelutdragen är ett valfri uttalande för flera val. Den allmänna formen för switch-uttalandet är som följer

switch (uttryck) {case constant1: statement (s); ha sönder; fall konstant2: uttalande; ha sönder; case constant3: uttalande (er); ha sönder; . . standard uttalande; }

Där uttrycket utvärderar ett heltal eller teckenkonstanter. Uttrycket här utvärderar endast för jämlikhet. Uttrycket verifieras mot de konstanter som är närvarande i ärenden. Om en matchning hittas utförs de uttalanden som är associerade med det fallet tills en "paus" inträffar. Eftersom brottmeddelandet är valfritt i ärendeförklaringarna, om brytmeddelandet inte finns närvarande, avslutas exekveringen inte förrän slutet av switch-uttalandet.
Uttrycket innehåller bara ett enda uttryck. Växelutdraget använder ofta ett tangentbordskommando för att välja ett bland flera ärenden.

int c; cout << "välj värdet från 1 till 3"; cin >> i; switch (i) {fall 1: cout << "du väljer mörk choclate"; ha sönder; fall 2: cout << "du väljer godis"; ha sönder; fall 3: cout << "du väljer lollypop"; ha sönder; . . default cout << "du väljer ingenting"; }

Här kommer värdet på "i" att avgöra vilket fall som ska köras, om en användare ger värdet på "i" annat än 1, 2 eller 3, kommer standardfallet att köras.

  1. Uttryck inuti om uttalande beslutar om de ska utöva påståendena inuti om block eller under annat blockeras. Å andra sidan bestämmer uttrycket i switch-uttalandet vilket ärende som ska köras.
  2. Du kan ha flera om uttalanden för flera val av uttalanden. I switch har du bara ett uttryck för flera val.
  3. If-esle-uttalande kontrollerar såväl jämställdhet som logiskt uttryck. Å andra sidan kontrollerar switch endast för jämlikhet.
  4. If-satsen utvärderar heltal, karaktär, pekare eller flytande punkttyp eller boolesktyp. Å andra sidan utvärderar switch-uttalandet endast karaktär eller en heltaldatatyp.
  5. Sekvens av exekvering är som antingen uttalande under om block kommer att köras eller uttalanden under annat blockmeddelande kommer att köras. Å andra sidan bestämmer uttrycket i switch-uttalande vilket ärende som ska köras och om du inte tillämpar en break-uttalande efter varje fall kommer den att köras till slutet av switch-uttalandet.
  6. Om uttrycket inuti om det visar sig vara felaktigt, kommer uttalande inuti blocket att köras. Om uttrycket inuti switch-uttalandet visar sig vara felaktigt utförs standarduttalanden.
  7. Det är svårt att redigera uttalanden om annat, eftersom det är tråkigt att spåra var korrigering krävs. Å andra sidan är det lätt att redigera switch-uttalanden eftersom de är lätta att spåra.

Slutsats:

Det är enkelt att redigera switch-uttalandet eftersom det har skapat separata ärenden för olika uttalanden medan det i kapslade om annat-uttalanden blir svårt att identifiera de uttalanden som ska redigeras.