C Izjave o stikalih

C Switch Case Statements



Stavek switch - ali preprosto stavek primera - je mehanizem nadzornega toka, ki določa izvajanje programa na podlagi vrednosti spremenljivke ali izraza.

Z uporabo stavka switch lahko preizkusite več pogojev in izvedete določen blok le, če je pogoj resničen. Čeprav deluje podobno kot izjava if… else if… .else, je sintaksa enostavnejša in lažja za branje in upravljanje.







Ta vadnica se osredotoča na prikaz ustvarjanja in dela z izjavami o stikalih v programiranju C.



Osnovna uporaba

Izjava o preklopu je enostavna za izvedbo. Splošna skladnja je naslednja:



stikalo (ekspr) {
casevar1:
// Koda
prekiniti;
casevar2:
//Koda
prekiniti;
casevar3:
// Koda
prekiniti;
casevarN:
// Koda
prekiniti;
...
….
….
privzeto:
//Koda
}

Kako deluje

Stavek switch izvaja preprosto logiko za ovrednotenje vsakega primera.





Začne se z ovrednotenjem izraza znotraj stikalnega bloka. Nato primerja vrednost stikalnega bloka z vsakim blokom primerov.

Ko najde ujemanje v enem od definiranih blokov velikih črk, izvede kodo v tem bloku, dokler ne naleti na ključno besedo break.



Če v nobenem od definiranih blokov velikih črk ne najde ujemanja, skoči na privzeti stavek in izvede kodo v njem. Privzeti blok je neobvezen in izpuščen, če za neustrezen scenarij ni potrebnih dejanj

OPOMBA: Dobro je zagotoviti, da se vsak stavek primera konča z izjavo break, da se prepreči izvajanje vseh stavkov po ujemajočem se bloku.

C Primer izjave o stikalih

Predstavimo stikalo z zelo preprostim primerom:

#vključi

intmain() {
intkje= 5;
stikalo (kje) {
primer 3:
printf ('Vrednost je 3');
prekiniti;
primer 4:
printf ('Vrednost je 4');
prekiniti;
primer 5:
printf ('Vrednost je 5');
prekiniti;
privzeto:
printf ('Vrednost ni 3, 4 ali 5');
}
return0;
}

Če zaženemo zgornji primer, bi morali dobiti rezultat, podoben spodnjemu:

Vrednost je5

Naslednji diagram poteka ponazarja logiko zgornjega programa:

Izjava o ugnezdenem stikalu

C vam omogoča, da imate v stavku switch ugnezdene stavke switch. Stavek ugnezdenega stikala je povezan z vrednostjo zunanjega stikala.

Razmislite o naslednjem primeru:

#vključi

intmain() {
intoddelek= 5;
intaccess_code= 2028;
stikalo (oddelek) {
primer 1:
stikalo (koda za dostop) {
primer2021:
printf ('[+] Veljavna koda za dostop!');
prekiniti;
privzeto:
printf ('[-] Neveljavna koda za dostop!');
}
prekiniti;
privzeto:
printf ('[-] Dovoljen je samo oddelek 1!');
}
return0;
}

V zgornjem primeru izvajamo dva stavka switch. Prvi preveri, ali je podani odsek 1. Če je res, nadaljuje do naslednjega stikalnega bloka in preveri veljavno kodo za dostop.

Če vrednost dept ni ena, se izvedba premakne v privzeti blok.

Sledi izvedba zgornje kode s pravilnim in napačnim oddelkom ter kodo za dostop.

V prvem primeru sta koda oddelka in koda za dostop pravilna; tako izvedba nikoli ne doseže privzetih blokov.

V drugem primeru sta koda oddelka in koda za dostop napačni; zato izvedba takoj skoči na prvi privzeti blok.

Smernice za izjave o preklopu

Spodaj so kratke smernice, ki jih je treba upoštevati pri ustvarjanju stikalnih stavkov v C.

  1. Ključni besedi switch morate posredovati izraz.
  2. Navedbe primerov morajo preveriti edinstvene vrednosti
  3. Vsak blok velikih črk zaključite s ključno besedo break.
  4. Gnezdiš lahko več stavkov switch.
  5. Kadar je potrebno dejanje za primere, ki se ne ujemajo, lahko vključite privzeto izjavo.

Zaključek

Ta vodnik vas je vodil skozi osnove ustvarjanja in uporabe stavkov C switch. Izjave o zamenjavi so uporabne, če imate zapletene primere odločanja, ki bi jih bilo težko izvesti z izjavo in če je drugače.