CATEGORII DOCUMENTE |
DOCUMENTE SIMILARE |
|
TERMENI importanti pentru acest document |
|
Instructiunea switch permite realizarea structurii alternativa generalizata. Ea este echivalenta cu o imbricare de structuri de alternativa simple. Utilizarea instructiunii switch face in schimb programul mult mai clar.
Formatul instructiunii switch este urmatorul:
switch (exp)
unde: c1,. . . cn sunt constante sau constante simbolice;
sir1, . . . ,sirn, sir sunt siruri de instructiuni.
Efectul:
se evalueaza expresia din paranteza;
se compara pe rand valoarea expresiei cu valorile constantelor c1, . . . , cn;
daca valoarea expresiei coincide cu valoarea lui ck, se executa secventa de instructiuni definita prin sirk; in cazul in care valoarea expresiei nu coincide cu nici una din constantele c1, . . . , cn, se executa secventa de instructiuni definita prin sir;
dupa executia secventei sirk sau sir se trece la instructiunea urmatoare instructiunii switch, adica la prima instructiune aflata dupa acolada inchisa care termina instructiunea switch respectiva; evident, acest lucru are loc daca sirul care se executa nu impune, el insusi, un alt mod de continuare a executiei, de exemplu o revenire din functia respectiva, un salt la o anumita instructiune, etc.
Observatii:
1o. Ramura default nu este obligatorie. In lipsa ei, daca valoarea expresiei nu coincide cu nici una din constantele c1,. . . , cn, instructiunea switch respectiva nu are nici un efect.
2o.Constructia break reprezinta o instructiune. Ea termina fiecare ramura de instructiuni sir1, . . . , sirn, provocand saltul la instructiunea urmatoare instructiunii switch sau, cum se mai spune, realizeaza iesirea din instructiunea switch.
3o. Instructiunea break nu este obligatorie. In cazul in care este absenta, se executa secvential urmatoarea ramura. De exemplu daca avem secventa:
switch (exp)
ea se executa in felul urmator:
daca valoarea expresiei este egala cu c1 se executa sir1 si apoi sir2;
daca valoarea expresiei este egala cu c2 se executa sir2;
daca valoarea expresiei difera de valorile c1 si c2 instructiunea switch de mai sus nu este efectiva, se trece la instructiunea urmatoare care urmeaza dupa switch.
secventa de mai sus se putea realiza si astfel:
if (exp = = c1)
else if (exp = = c2) sir2
Exemplu:
Vom citi din fisierul de intrare constructii de forma: op1 operator op2, unde op1 si op2 sunt numere intregi (operanzi intregi) iar operator este un operator aritmetic . La iesire se va scrie valoarea expresiei citite. De exemplu daca se citeste secventa 100/3 se va afisa rezultatul 33. Programul permite citirea si evaluarea mai multor astfel de expresii, pana la intalnirea sfarsitului de fisier.
#include <stdio.h>
void main (void)
else rezultat = op1 / op2;
break;
default : printf ("operator eronatn");
rezultat = 0;
} // sfarsit switch
printf ("%d %c %d %dn", op1, operator, op2, rezultat);
} else
printf ("expresie eronat²n"); // sfarsit if
// sfarsit while
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 795
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved