Switch case -käsky arvioi tietyn lausekkeen ja suorittaa arvioidun arvon perusteella (vastaa tiettyä ehtoa) siihen liittyvät lausekkeet. Pohjimmiltaan sitä käytetään suorittamaan erilaisia toimintoja eri olosuhteiden (tapausten) perusteella.
- Vaihtotapaukset noudattavat valinta-ohjausmekanismia ja sallivat arvon muuttaa suorituksen ohjausta.
- Ne ovat korvike pitkään jos lausunnot jotka vertaavat muuttujaa useisiin integraaliarvoihin.
- Kytkinkäsky on monitiehaarakäsky. Se tarjoaa helpon tavan lähettää suoritus koodin eri osiin lausekkeen arvon perusteella.
C:ssä switch case -lausetta käytetään yhden ehdon suorittamiseen useista ehdoista. Se on samanlainen kuin jos-else-if-tikkaat.
valitse nimellä
Kytkinkäsky koostuu ehdollisiin tapauksista ja oletustapauksista.
Kytkimen lausekkeen syntaksi C:ssä
switch(expression) { case value1 : statement_1; break; case value2 : statement_2; break; . . . case value_n : statement_n; break; default: default_statement; }>Kuinka käyttää kytkinkotelon lausuntoa C:ssä?
Ennen kuin käytämme kytkintapausta ohjelmassamme, meidän on tiedettävä joitain kytkinkäskyn sääntöjä.
Kytkimen tapauksen säännöt
Seuraavassa on joitain sääntöjä, joita meidän on noudatettava, kun käytät kytkinlausetta:
- Kytkimen lausunnossa tapauksen arvo täytyy olla hiiltyä ja int tyyppi.
- Tapauksia voi olla yksi tai N määrä.
- Tapauksen arvojen tulee olla ainutlaatuinen .
- Jokaisella tapauksen lauseella voi olla break-lause. Se on valinnainen.
- Oletuslausunto on myös valinnainen.
Esimerkki
C // C program to Demonstrate returning of day based numeric // value #include int main() { // switch variable int var = 1; // switch statement switch (var) { case 1: printf('Case 1 is Matched.'); break; case 2: printf('Case 2 is Matched.'); break; case 3: printf('Case 3 is Matched.'); break; default: printf('Default case is Matched.'); break; } return 0; }> Lähtö
Case 1 is Matched.>
Miten vaihtolausunto toimii?
Kytkinkäskyn toiminta C:ssä on seuraava:
- Vaihe 1: Kytkinmuuttuja arvioidaan.
- Vaihe 2: Arvioitu arvo verrataan kaikkiin esillä oleviin tapauksiin.
- Vaihe 3A: Jos vastaava tapausarvo löytyy, siihen liittyvä koodi suoritetaan.
- Vaihe 3B: Jos vastaavaa koodia ei löydy, oletustapaus suoritetaan, jos se on olemassa.
- Vaihe 4A: Jos tapauksessa break-avainsana on läsnä, ohjelman ohjaus katkeaa kytkinkäskystä.
- Vaihe 4B: Jos break-avainsanaa ei ole, kaikki tapaukset vastaavan tapauksen jälkeen suoritetaan.
- Vaihe 5: Switch-lauseen jälkeiset lausekkeet suoritetaan.
Vuokaavion avulla voimme myös ymmärtää kytkinkäskyn toiminnan C:ssä.
Switch-lausunnon vuokaavio

C:n kytkimen lauseen vuokaavio
Katkaise kytkinkotelo
Tätä avainsanaa käytetään pysäyttämään suoritus kytkinlohkon sisällä. Se auttaa päättämään kytkinlohkon ja purkamaan siitä. Kun break-lause saavutetaan, kytkin päättyy ja ohjausvirta siirtyy kytkinkäskyä seuraavalle riville.
The break-lause on valinnainen . Jos se jätetään pois, suoritus jatkuu seuraavaan tapaukseen. Ohjausvirta jakautuu seuraaviin tapauksiin, kunnes saavutetaan tauko.
Esimerkki kytkinkotelosta ilman taukoa
C // C Program to demonstrate the behaviour of switch case // without break #include int main() { int var = 2; // switch case without break switch (var) { case 1: printf('Case 1 is executed.
'); case 2: printf('Case 2 is executed.
'); case 3: printf('Case 3 is executed.'); case 4: printf('Case 4 is executed.'); } return 0; }> Lähtö
Case 2 is executed. Case 3 is executed.Case 4 is executed.>
Oletusarvo kytkinkotelossa
Oletusavainsanaa käytetään määrittämään joukko suoritettavat lauseet, jos kirjainkokoa ei löydy .
se on valinnainen käyttääksesi oletusavainsanaa kytkimen tapauksessa. Vaikka switch case -lauseessa ei olisi oletuskäskyä, se toimisi ilman ongelmia.
Tärkeitä seikkoja Switch-tapauslausunnoista
1. Vaihtolausekkeen pitäisi johtaa a vakioarvo
Jos kytkinkäskyssä annettu lauseke ei johda vakioarvoon, se ei ole kelvollinen. Jotkut kelvolliset lausekkeet vaihtajan kirjaimelle ovat,
java-tyyppinen muuttuja
// Constant expressions allowed switch(1+2+23) switch(1*2+3%4) // Variable expression are allowed provided // they are assigned with fixed values switch(a*b+c*d) switch(a+b+c)>
2. Lausekkeen arvon tulee olla vain int tai char tyyppiä.
Switch-käsky voi arvioida vain kokonaisluvun tai merkin arvon. Joten kytkinlausekkeen pitäisi palauttaa vain int- tai char-tyypin arvot.
3. Tapausten arvojen on oltava yksilöllisiä
C switch -käskyssä kaksinkertaiset tapausarvot eivät ole sallittuja.
3. Kytkinlausuntojen sisäkkäisyys
Kytkinkäskyjen sisäkkäisyys on sallittu , mikä tarkoittaa, että sinulla voi olla kytkinlauseita toisen kytkimen sisällä. Sisäkkäisiä kytkinlauseita tulee kuitenkin välttää, koska ne tekevät ohjelmasta monimutkaisemman ja vähemmän luettavan.
4. Oletuslohko voidaan sijoittaa mihin tahansa
Sijoituksestaan riippumatta oletustapaus suoritetaan vain, jos mikään muu tapauksen ehto ei täyty. Joten sen sijoittaminen alkuun, keskelle tai loppuun ei muuta ydinlogiikkaa.
Esimerkkejä C:n kytkinlausekkeesta
Esimerkki 1: C Ohjelma tulostaa viikonpäivä käyttämällä kytkinkoteloa.
C // C program to print the day using switch #include // Driver Code int main() { int day = 2; printf('The day with number %d is ', day); switch (day) { case 1: printf('Monday'); break; case 2: printf('Tuesday'); break; case 3: printf('Wednesday'); break; case 4: printf('Thursday'); break; case 5: printf('Friday'); break; case 6: printf('Saturday'); break; case 7: printf('Sunday'); break; default: printf('Invalid Input'); break; } return 0; }> Lähtö
The day with number 2 is Tuesday>
Esimerkki 2: Yksinkertainen laskin C:n kytkinkotelolla
C // C Program to create a simple calculator using switch // statement #include #include // driver code int main() { // switch variable char choice; // operands int x, y; while (1) { printf('Enter the Operator (+,-,*,/)
Enter x to ' 'exit
'); scanf(' %c', &choice); // for exit if (choice == 'x') { exit(0); } printf('Enter the two numbers: '); scanf('%d %d', &x, &y); // switch case with operation for each operator switch (choice) { case '+': printf('%d + %d = %d
', x, y, x + y); break; case '-': printf('%d - %d = %d
', x, y, x - y); break; case '*': printf('%d * %d = %d
', x, y, x * y); break; case '/': printf('%d / %d = %d
', x, y, x / y); break; default: printf('Invalid Operator Input
'); } } return 0; }>
Lähtö
Enter the operator (+, -, *, /) Enter x to exit + Enter the two numbers: 100 + 200 100 + 200 = 300>
C-kytkimen edut
- Helpompi lukea kuin jos muuten.
- Helpompi virheenkorjaus ja ylläpito useissa olosuhteissa.
- Nopeampi suoritusnopeus.
C-kytkinlausunnon haitat
- Kytkimen kirjainkoko voi arvioida vain int- tai char-tyyppiä.
- Ei tukea loogisille lausekkeille.
- Pitää muistaa lisätä tauko joka tapauksessa.
Johtopäätös
Tässä artikkelissa keskustelimme C-ohjelmoinnin kytkinlauseesta ja sen käytöstä. Se on ehdollinen lausunto, kuten jos-else-if -portaat, jolla on omat hyvät ja huonot puolensa. Se on enimmäkseen parempi, kun arvioitavien ehtojen määrä on suuri.
Usein kysytyt kysymykset C-kytkimen lausunnosta
1. Mikä on kytkinkotelo C:ssä?
Kytkintapauslauseke on vuonohjauskäsky, jossa voimme määritellä kytkinmuuttujan ja sitten suorittaa eri koodin kytkinmuuttujan arvon perusteella. Se on vaihtoehto if else if -portaille.
2. Mikä on C:n vaihtokäskyn tapaus?
Case-avainsanaa käytetään määrittämään eri tapaukset ja niihin liittyvä koodi kytkinkäskyssä.
3. Mitä kytkinkotelon rikkoutuminen tekee?
Break-avainsanaa käytetään poistumaan kytkinlohkosta vastaavan tapauksen suorittamisen jälkeen.
java pari
4. Mitä eroja on C:n kytkimen ja jos muuten tikkaiden välillä?
Seuraavat ovat tärkeimmät erot C-kytkimen ja C-kytkimen välillä, jos muuten tikkaat :
vaihtaa | jos muuten jos |
|---|---|
| Se suorittaa eri tapaukset kytkinmuuttujan arvon perusteella. | Se suorittaa eri lohkot määritetyn ehdon perusteella. |
| Se voi arvioida vain int- tai char-tyyppisiä lausekkeita. | Se voi arvioida minkä tahansa tyyppisiä ilmaisuja. |
| Nopeampi ja helpompi lukea useissa olosuhteissa. | Se voi mennä sotkuiseksi, kun olosuhteita on paljon. |
Täytyy lukea:
- Mielenkiintoisia faktoja C:n kytkinkotelosta
- Tulosta yksittäiset numerot sanoina käyttämättä if- tai kytkintä