prekidač ... slučaj u programiranju C

U ovom uputstvu naučit ćete stvoriti naredbu switch u programiranju na C uz pomoć primjera.

Izjava switch omogućuje nam izvršavanje jednog bloka koda među mnogim alternativama.

To možete učiniti i s if… else… ifljestvama. Međutim, sintaksu switchizjave je puno lakše čitati i pisati.

Sintaksa preklopnika … slučaj

 switch (expression) ( case constant1: // statements break; case constant2: // statements break;… default: // default statements )

Kako funkcionira naredba switch?

Izraz se procjenjuje jednom i uspoređuje s vrijednostima svake oznake slučaja.

  • Ako postoji podudaranje, izvršavaju se odgovarajući izrazi nakon odgovarajuće oznake. Na primjer, ako je vrijednost izraza jednaka konstanti2, izrazi nakon case constant2:izvršavaju se dok breakse ne naiđe.
  • Ako nema podudaranja, izvršavaju se zadani izrazi.

Ako ne koristimo break, izvršavaju se svi izrazi nakon odgovarajuće oznake.

Inače, defaultklauzula unutar switchizjave nije obavezna.

dijagram toka prekidača prekidača

Primjer: Jednostavni kalkulator

 // Program to create a simple calculator #include int main() ( char operator; double n1, n2; printf("Enter an operator (+, -, *, /): "); scanf("%c", &operator); printf("Enter two operands: "); scanf("%lf %lf",&n1, &n2); switch(operator) ( case '+': printf("%.1lf + %.1lf = %.1lf",n1, n2, n1+n2); break; case '-': printf("%.1lf - %.1lf = %.1lf",n1, n2, n1-n2); break; case '*': printf("%.1lf * %.1lf = %.1lf",n1, n2, n1*n2); break; case '/': printf("%.1lf / %.1lf = %.1lf",n1, n2, n1/n2); break; // operator doesn't match any case constant +, -, *, / default: printf("Error! operator is not correct"); ) return 0; ) 

Izlaz

 Unesite operator (+, -, *,): - Unesite dva operanda: 32,5 12,4 32,5 - 12,4 = 20,1

Operator koji je korisnik unio pohranjen je u varijabli operatora. Dva su operanda 32,5 i 12,4 pohranjena u varijable n1 odnosno n2.

Budući da je operator -, kontrola programa preskače na

 printf ("%. 1lf -% .1lf =% .1lf", n1, n2, n1-n2);

Napokon, izjava break prekida switchizjavu.

Zanimljivi članci...