Switch case-sætning evaluerer et givet udtryk, og baseret på den evaluerede værdi (der matcher en bestemt betingelse), udfører den de sætninger, der er knyttet til den. Dybest set bruges det til at udføre forskellige handlinger baseret på forskellige forhold (tilfælde).
- Switch-tilfældeudsagn følger en selektionskontrolmekanisme og tillader en værdi at ændre styringen af udførelsen.
- De er en erstatning for længe hvis udsagn der sammenligner en variabel med flere integrale værdier.
- Switch-sætningen er en flervejs-grensætning. Det giver en nem måde at sende udførelse til forskellige dele af koden baseret på værdien af udtrykket.
I C bruges switch case-sætningen til at udføre en betingelse fra flere betingelser. Det ligner en hvis-andet-hvis-stige.
prøv catch block i java
Switch-sætningen består af betinget-baserede sager og en standardsag.
Syntaks for switch-sætning i C
switch(expression) { case value1 : statement_1; break; case value2 : statement_2; break; . . . case value_n : statement_n; break; default: default_statement; }>Hvordan bruger man switch case Statement i C?
Før vi bruger switch-casen i vores program, skal vi kende nogle regler for switch-sætningen.
Regler for skiftesagserklæringen
Følgende er nogle af de regler, som vi skal følge, mens vi bruger switch-sætningen:
- I en switch-erklæring er sagsværdi skal være af char og int type.
- Der kan være et eller N antal tilfælde.
- Værdierne i sagen skal være enestående .
- Hver erklæring i sagen kan have en pauseerklæring. Det er valgfrit.
- Standarderklæringen er også valgfri.
Eksempel
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.>
Hvordan fungerer skifterklæring?
Funktionen af switch-sætningen i C er som følger:
- Trin 1: Switch-variablen evalueres.
- Trin 2: Den vurderede værdi er afstemt med alle de foreliggende sager.
- Trin 3A: Hvis den matchende sagsværdi findes, udføres den tilknyttede kode.
- Trin 3B: Hvis den matchende kode ikke findes, udføres standardcasen, hvis den findes.
- Trin 4A: Hvis nøgleordet break er til stede i sagen, bryder programstyringen ud af switch-sætningen.
- Trin 4B: Hvis søgeordet pause ikke er til stede, udføres alle sagerne efter den matchende sag.
- Trin 5: Udsagn efter switch-sætningen udføres.
Vi kan også forstå, hvordan switch-sætningen fungerer i C ved hjælp af rutediagrammet.
Flowchart af Switch Statement

Flowchart af switch-erklæring i C
Bryd i afbryderkasse
Dette nøgleord bruges til at stoppe udførelsen inde i en switch-blok. Det hjælper med at afslutte kontaktblokken og bryde ud af den. Når en break-sætning er nået, afsluttes switchen, og kontrolstrømmen hopper til næste linje efter switch-sætningen.
Det pauseerklæring er valgfri . Hvis den udelades, vil eksekveringen fortsætte til næste sag. Kontrolflowet vil falde igennem til efterfølgende tilfælde, indtil en pause er nået.
Eksempel på afbryderhus uden brud
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 afbryderkasse
Standard nøgleordet bruges til at angive sættet af sætninger, der skal udføres, hvis der ikke er nogen casematch .
det er valgfri for at bruge standardnøgleordet i en switch case. Selvom switch-case-sætningen ikke har en standardsætning, ville den køre uden problemer.
Vigtige punkter om Switch-sagserklæringer
1. Skift udtryk skal resultere i en konstant værdi
Hvis udtrykket i switch-sætningen ikke resulterer i en konstant værdi, ville det ikke være gyldigt. Nogle gyldige udtryk for switch case vil være,
eksempler på binære træer
// 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. Udtryksværdien bør kun være af typen int eller char.
Switch-sætningen kan kun evaluere heltal- eller tegnværdien. Så switch-udtrykket bør kun returnere værdierne af typen int eller char.
3. Sagsværdier skal være unikke
I C-switch-sætningen er dublerede kasusværdier ikke tilladt.
3. Indlejring af skifteerklæringer
Indlejring af switch-udsagn er tilladt , hvilket betyder, at du kan have switch-sætninger inde i en anden switch. Indlejrede switch-sætninger bør dog undgås, da det gør programmet mere komplekst og mindre læsbart.
4. Standardblokken kan placeres hvor som helst
Uanset dens placering, bliver standardsagen kun eksekveret, hvis ingen af de andre sagsbetingelser er opfyldt. Så at sætte det i begyndelsen, midten eller slutningen ændrer ikke kernelogikken.
Eksempler på skifteerklæring i C
Eksempel 1: C Program til at udskrive ugedagen ved hjælp af en kontaktboks.
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>
Eksempel 2: Simpel lommeregner ved hjælp af switch case 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>
Fordele ved C switch Statement
- Lettere at læse end hvis andet hvis.
- Nemmere at fejlfinde og vedligeholde for en lang række forhold.
- Hurtigere udførelseshastighed.
Ulemper ved C switch Statement
- Switch case kan kun evaluere int eller char type.
- Ingen støtte til logiske udtryk.
- Skal huske på at tilføje en pause i alle tilfælde.
Konklusion
I denne artikel diskuterede vi switch-sætningen i C-programmering, og hvordan man bruger den. Det er en betinget erklæring som hvis-andet-hvis-stigen har sine egne fordele og ulemper. Det foretrækkes mest, når antallet af betingelser, der skal evalueres, er stort.
Ofte stillede spørgsmål om C switch-erklæring
1. Hvad er afbryderhuset i C?
Switch-case-sætningen er en flowkontrolsætning, hvori vi kan definere en switch-variabel og derefter udføre en anden kode baseret på værdien af switch-variablen. Det er et alternativ til if else if stige.
2. Hvad er tilfældet i switch-sætningen i C?
Sagsøgeordet bruges til at definere de forskellige sager og deres tilhørende kode i switch-sætningen.
3. Hvad gør bruddet i afbryderhuset?
Nøgleordet break bruges til at forlade switch-blokken efter udførelse af matchende sag.
4. Hvad er forskellene mellem switch og if else if ladder i C?
Følgende er de vigtigste forskelle mellem C switch og C hvis andet hvis stigen :
kontakt k nærmeste nabo-algoritme | hvis andet hvis |
|---|---|
| Den udfører de forskellige cases på basis af værdien af switch-variablen. | Den udfører de forskellige blokke baseret på den angivne betingelse. |
| Den kan kun evaluere int- eller char-typens udtryk. | Det kan evaluere enhver form for udtryk. |
| Hurtigere og nemmere at læse for det store antal forhold. | Det kan blive rodet, når der er mange forhold. |
Skal læses:
- Interessante fakta om Switch Case i C
- Udskriv individuelle cifre som ord uden at bruge if eller Switch