logo

Bytteerklæring i C

Switch case-setning evaluerer et gitt uttrykk og basert på den evaluerte verdien (som samsvarer med en bestemt betingelse), utfører den setningene knyttet til den. I utgangspunktet brukes det til å utføre forskjellige handlinger basert på forskjellige forhold (tilfeller).

  • Switch case-setninger følger en utvalg-kontrollmekanisme og lar en verdi endre kontroll over utførelse.
  • De er en erstatning for lenge hvis uttalelser som sammenligner en variabel med flere integralverdier.
  • Switch-setningen er en flerveis grensetning. Det gir en enkel måte å sende utførelse til forskjellige deler av koden basert på verdien av uttrykket.

I C brukes switch case-setningen for å utføre en betingelse fra flere forhold. Det ligner på en hvis-annet-hvis-stige.



java parse streng til int

Switch-setningen består av betinget-baserte saker og en standardsak.

Syntaks for brytersetning i C

  switch(expression)     {     case   value1  :   statement_1;   break;     case   value2  :   statement_2;   break;   . . .   case   value_n  :   statement_n;   break;     default:   default_statement; }>

Hvordan bruke switch case Statement i C?

Før vi bruker switch-tilfellet i programmet vårt, må vi vite om noen regler for switch-setningen.

Regler for brytersakserklæringen

Følgende er noen av reglene som vi må følge når vi bruker switch-setningen:



  1. I en switch-uttalelse sier saksverdi må være av røye og int type.
  2. Det kan være ett eller N antall tilfeller.
  3. Verdiene i saken må være unik .
  4. Hver saksuttalelse kan ha en pauseerklæring. Det er valgfritt.
  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; }>

Produksjon
Case 1 is Matched.>

Hvordan fungerer bytteerklæring?

Virkningen av brytersetningen i C er som følger:

  1. Trinn 1: Switch-variabelen blir evaluert.
  2. Steg 2: Den evaluerte verdien matches mot alle de aktuelle tilfellene.
  3. Trinn 3A: Hvis den samsvarende kasusverdien blir funnet, utføres den tilknyttede koden.
  4. Trinn 3B: Hvis den samsvarende koden ikke blir funnet, kjøres standardsaken hvis den finnes.
  5. Trinn 4A: Hvis nøkkelordet break er til stede i saken, bryter programkontrollen ut av switch-setningen.
  6. Trinn 4B: Hvis nøkkelordet break ikke er tilstede, blir alle sakene etter den samsvarende saken utført.
  7. Trinn 5: Uttalelser etter switch-setningen blir utført.

Vi kan også forstå hvordan brytersetningen fungerer i C ved å bruke flytskjemaet.

Flytskjema for brytererklæring

bryterhus i c

Flytskjema for brytersetning i C



Brudd i bryterhus

Dette nøkkelordet brukes til å stoppe utførelsen inne i en bryterblokk. Det hjelper å avslutte bryterblokken og bryte ut av den. Når en break-setning er nådd, avsluttes bryteren, og kontrollflyten hopper til neste linje etter switch-setningen.

De break statement er valgfritt . Hvis den utelates, vil utførelsen fortsette til neste sak. Strømmen av kontroll vil falle gjennom til påfølgende tilfeller inntil en pause er nådd.

Eksempel på bryterhus uten brudd

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; }>

Produksjon
Case 2 is executed. Case 3 is executed.Case 4 is executed.>

Standard i bryterhus

Standard nøkkelord brukes til å spesifisere settet med setninger som skal utføres hvis det ikke er noen kasusmatch .

Det er valgfri for å bruke standard nøkkelord i et byttetilfelle. Selv om switch case-setningen ikke har en standardsetning, vil den kjøre uten problemer.

Viktige punkter om Switch Case Statements

1. Bytt uttrykk skal resultere i en konstant verdi

Hvis uttrykket gitt i switch-setningen ikke resulterer i en konstant verdi, vil det ikke være gyldig. Noen gyldige uttrykk for vekslingstilfelle vil være,

forskjell på tiger og løve
// 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. Uttrykksverdien skal bare være av typen int eller char.

Switch-setningen kan bare evaluere heltalls- eller tegnverdien. Så bryteruttrykket skal bare returnere verdiene av typen int eller char.

3. Saksverdier må være unike

I C switch-setningen er dupliserte kasusverdier ikke tillatt.

3. Nesting av brytererklæringer

Nesting av brytersetninger er tillatt , som betyr at du kan ha brytersetninger inne i en annen bryter. Nestede brytersetninger bør imidlertid unngås, da det gjør programmet mer komplekst og mindre lesbart.

4. Standardblokken kan plasseres hvor som helst

Uavhengig av plasseringen, blir standardsaken kun utført hvis ingen av de andre saksbetingelsene er oppfylt. Så å sette det i begynnelsen, midten eller slutten endrer ikke kjernelogikken.

Eksempler på brytererklæring i C

Eksempel 1: C Program for å skrive ut ukedagen med en bryterboks.

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; }>

Produksjon
The day with number 2 is Tuesday>

Eksempel 2: Enkel kalkulator som bruker bryterhus 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; }>


Produksjon

Enter the operator (+, -, *, /) Enter x to exit + Enter the two numbers: 100 + 200 100 + 200 = 300>

Fordeler med C switch Statement

  1. Lettere å lese enn om annet hvis.
  2. Lettere å feilsøke og vedlikeholde for et stort antall forhold.
  3. Raskere utførelseshastighet.

Ulemper med C switch Statement

  1. Bryterhus kan bare evaluere int eller char type.
  2. Ingen støtte for logiske uttrykk.
  3. Må huske på å legge til en pause i alle tilfeller.

Konklusjon

I denne artikkelen diskuterte vi brytersetningen i C-programmering og hvordan du bruker den. Det er en betinget uttalelse som hvis-annet-hvis-stigen har sine egne fordeler og ulemper. Det er mest å foretrekke når antallet forhold som skal evalueres er stort.

Vanlige spørsmål om C switch-uttalelse

1. Hva er bryterhuset i C?

Switch case-setningen er en flytkontrollsetning der vi kan definere en svitsjvariabel og deretter utføre en annen kode basert på verdien til svitsjvariabelen. Det er et alternativ til if else if stige.

2. Hva er tilfellet i switch-setningen i C?

Saksøkeordet brukes til å definere de forskjellige tilfellene og deres tilhørende kode i switch-setningen.

3. Hva gjør bruddet i bryterhuset?

Nøkkelordet break brukes til å gå ut av bryterblokken etter å ha utført samsvarende tilfelle.

4. Hva er forskjellene mellom bryter og hvis annet hvis stige i C?

Følgende er de viktigste forskjeller mellom C-bryter og C hvis annet hvis stige :

bytte om

k nærmeste nabo-algoritme

hvis annet hvis

Den utfører de forskjellige tilfellene på grunnlag av verdien til svitsjvariabelen.Den utfører de forskjellige blokkene basert på betingelsen som er spesifisert.
Den kan bare evaluere uttrykkene int eller char type.Den kan evaluere alle typer uttrykk.
Raskere og lettere å lese for det store antallet forhold.Det kan bli rotete når det er mange forhold.

Må lese:

  • Interessante fakta om Switch Case i C
  • Skriv ut individuelle sifre som ord uten å bruke if eller Switch