logo

Skift erklæring i C

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:



  1. I en switch-erklæring er sagsværdi skal være af char og int type.
  2. Der kan være et eller N antal tilfælde.
  3. Værdierne i sagen skal være enestående .
  4. Hver erklæring i sagen kan have en pauseerklæring. Det er valgfrit.
  5. 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:

  1. Trin 1: Switch-variablen evalueres.
  2. Trin 2: Den vurderede værdi er afstemt med alle de foreliggende sager.
  3. Trin 3A: Hvis den matchende sagsværdi findes, udføres den tilknyttede kode.
  4. Trin 3B: Hvis den matchende kode ikke findes, udføres standardcasen, hvis den findes.
  5. Trin 4A: Hvis nøgleordet break er til stede i sagen, bryder programstyringen ud af switch-sætningen.
  6. Trin 4B: Hvis søgeordet pause ikke er til stede, udføres alle sagerne efter den matchende sag.
  7. 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

afbryderkasse i c

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

  1. Lettere at læse end hvis andet hvis.
  2. Nemmere at fejlfinde og vedligeholde for en lang række forhold.
  3. Hurtigere udførelseshastighed.

Ulemper ved C switch Statement

  1. Switch case kan kun evaluere int eller char type.
  2. Ingen støtte til logiske udtryk.
  3. 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