Switch case-satsen utvärderar ett givet uttryck och baserat på det utvärderade värdet (matchar ett visst villkor) exekverar det de satser som är associerade med det. I grund och botten används det för att utföra olika åtgärder baserat på olika förhållanden (fall).
- Switch case-satser följer en urvalskontrollmekanism och tillåter ett värde att ändra kontroll över exekvering.
- De är ett substitut länge om uttalanden som jämför en variabel med flera integralvärden.
- Switch-satsen är en flervägsgrensats. Det ger ett enkelt sätt att skicka exekvering till olika delar av koden baserat på uttryckets värde.
I C används switch case-satsen för att exekvera ett villkor från flera villkor. Det liknar en om-annat-om-stege.
Linux gratis ipconfig
Switch-satsen består av villkorsbaserade fall och ett standardfall.
Syntax för switch-sats i C
switch(expression) { case value1 : statement_1; break; case value2 : statement_2; break; . . . case value_n : statement_n; break; default: default_statement; }>Hur använder man switch case Statement i C?
Innan vi använder switch-fallet i vårt program måste vi känna till några regler för switch-satsen.
Regler för växlingsfallsförklaringen
Följande är några av reglerna som vi måste följa när vi använder switch-satsen:
- I ett switch-uttalande, fallvärde måste vara av röding och int typ.
- Det kan finnas ett eller N antal fall.
- Värdena i ärendet måste vara unik .
- Varje utlåtande i ärendet kan ha ett brottutlåtande. Det är valfritt.
- Standardutlåtandet är också valfritt.
Exempel
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; }> Produktion
Case 1 is Matched.>
Hur fungerar växlingsutlåtande?
Funktionen för switch-satsen i C är som följer:
- Steg 1: Switchvariabeln utvärderas.
- Steg 2: Det utvärderade värdet matchas mot alla aktuella fall.
- Steg 3A: Om det matchande fallet värde hittas exekveras den tillhörande koden.
- Steg 3B: Om den matchande koden inte hittas, exekveras standardfallet om det finns.
- Steg 4A: Om nyckelordet break finns i fallet, bryter programkontrollen ut ur switch-satsen.
- Steg 4B: Om nyckelordet break inte finns, exekveras alla fall efter matchande fall.
- Steg 5: Uttalanden efter switch-satsen exekveras.
Vi kan också förstå hur switchsatsen fungerar i C med hjälp av flödesschemat.
Flödesschema för Switch Statement

Flödesschema för switch-uttalande i C
Bryt i växellåda
Detta nyckelord används för att stoppa exekveringen inuti ett switchblock. Det hjälper till att avsluta kopplingsblocket och bryta ut ur det. När en break-sats uppnås avslutas switchen, och kontrollflödet hoppar till nästa rad efter switch-satsen.
De break statement är valfritt . Om det utelämnas kommer exekveringen att fortsätta till nästa fall. Kontrollflödet kommer att falla igenom till efterföljande fall tills ett avbrott uppnås.
Exempel på kopplingshus utan avbrott
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; }> Produktion
Case 2 is executed. Case 3 is executed.Case 4 is executed.>
Standard i växellåda
Standardnyckelordet används för att ange uppsättningen av uttalanden att köra om det inte finns någon fallmatchning .
Det är frivillig för att använda standardnyckelordet i ett växlingsfall. Även om switch case-satsen inte har en standardsats, skulle den köras utan problem.
Viktiga punkter om Switch Case Statements
1. Växlingsuttryck bör resultera i en konstant värde
Om uttrycket i switch-satsen inte resulterar i ett konstant värde, skulle det inte vara giltigt. Några giltiga uttryck för växelfall kommer att vara,
sammanfoga java-strängen
// 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. Uttrycksvärdet bör endast vara av int- eller char-typ.
Switch-satsen kan bara utvärdera heltals- eller teckenvärdet. Så switch-uttrycket bör endast returnera värdena av typen int eller char.
3. Fallvärden måste vara unika
I C-switch-satsen är dubbletter av fallvärden inte tillåtna.
3. Kapsling av växelutlåtanden
Kapsling av switch-satser är tillåten , vilket innebär att du kan ha switch-satser i en annan switch. Men kapslade switch-satser bör undvikas eftersom det gör programmet mer komplext och mindre läsbart.
4. Standardblocket kan placeras var som helst
Oavsett dess placering exekveras standardfallet endast om inget av de andra ärendevillkoren är uppfyllda. Så att sätta det i början, mitten eller slutet ändrar inte kärnlogiken.
Exempel på switch Statement i C
Exempel 1: C Program för att skriva ut veckodagen med hjälp av ett växelhus.
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; }> Produktion
The day with number 2 is Tuesday>
Exempel 2: Enkel miniräknare med växellåda i C
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; }>
Produktion
Enter the operator (+, -, *, /) Enter x to exit + Enter the two numbers: 100 + 200 100 + 200 = 300>
Fördelar med C switch Statement
- Lättare att läsa än om annars om.
- Lättare att felsöka och underhålla för ett stort antal förhållanden.
- Snabbare exekveringshastighet.
Nackdelar med C switch Statement
- Switch case kan bara utvärdera int eller char typ.
- Inget stöd för logiska uttryck.
- Måste komma ihåg att lägga till en paus i varje fall.
Slutsats
I den här artikeln diskuterade vi switch-satsen i C-programmering och hur man använder den. Det är ett villkorligt uttalande som om-annat-om-stegen har sina egna fördelar och nackdelar. Det är mest att föredra när antalet villkor att utvärdera är stort.
Vanliga frågor om C switch-uttalande
1. Vad är växelfallet i C?
Switch case-satsen är en flödeskontrollsats där vi kan definiera en switch-variabel och sedan exekvera annan kod baserat på värdet på switch-variabeln. Det är ett alternativ till om annat om stege.
separat sträng i java
2. Vad är fallet i switch-satsen i C?
Nyckelordet case används för att definiera de olika fallen och deras tillhörande kod i switch-satsen.
3. Vad gör avbrottet i växellådan?
Nyckelordet break används för att lämna switchblocket efter att ha utfört matchningsfallet.
4. Vilka är skillnaderna mellan switch och om annat om stege i C?
Följande är de viktigaste skillnader mellan C switch och C om annat om stege :
växla | om annat om |
|---|---|
| Den exekverar de olika fallen på basis av värdet på switchvariabeln. | Den exekverar de olika blocken baserat på det angivna villkoret. |
| Den kan bara utvärdera uttrycken int eller char typ. | Den kan utvärdera vilken typ av uttryck som helst. |
| Snabbare och lättare att läsa för det stora antalet förhållanden. | Det kan bli rörigt när det är många förhållanden. |
Måste läsas:
- Intressanta fakta om Switch Case i C
- Skriv ut enskilda siffror som ord utan att använda if eller Switch