Limbajul C este un limbaj "mic", cu putine instructiuni. Aceasta caracteristica permite pe de o parte o standardizare mai usoara cu efect direct asupra usurintei de implementare Instructiunile limbajului C sunt:
· 515d32f Instructiuni de test: if-else si else-if
· 515d32f Instructiunea de selectie: switch
· 515d32f Instructiunile de ciclare: for while si do-while
· 515d32f Instructiunile de control a ciclurilor: break si continue
· 515d32f Instructiunea de revenire din functia apelata: return
· 515d32f Instructiunea de salt neconditionat: goto
Sintaxa:
if(expresie)
instructtiune_1;
else
instructiune_2;
Executie:
Daca expresie este adevarata (valoarea numerica este diferita de 0) se executa instructiune_1, altfel se executa instructiune_2
Ramura else poate lipsi.
Ex.
if(n<0)
n=-n;
.
In cazul in care instructiune_1 sau instructiune_2 sunt la randul lor if-uri ramura else se asociaza celui mai apropiat if care o precede. Se poate controla (forta) asocierea ramurii else cu un anumit if prin utilizarea acoladelor.
Ex.
if(n>=0)
if(a>b)
z=a;
else
z=b;
else
printf(" n - negativ");
if(n>=0)
else
z=b;
Sintaxa:
if(expresie_1)
instructiune_1;
else if(expresie_2)
instructiune_2;
.
else if(expresie_n)
instructiune_n;
else
instructiune;
Executie:
Daca expresie_1 este adevarata se executa instructiune_1, altfel, daca expresie_2 este adevarata se executa instructiune_2, altfel,., daca expresie_n este adevarata se executa instructiune_n altfel se executa instructiune. Altfel spus, instructiunea else-if permite o selectie din mai multe variante posibile (cea corespunzatoare primei expresii adevarate. Deasemenea, instructiunea else-if ofera si o varianta implicita (ramura else instructie ), pentru cazul cand niciuna din expresiile expresie_i nu este adevarata.
Ex.
if(a>0)
printf("a este pozitiv");
else if(a<0)
printf("a este negativ");
else
printf("a=0");
Sintaxa:
switch(expresie)
Sintaxa:
while (expresie)
instructiune;
Executie:
Se evalueaza expresie si daca este adevarata se executa instructiune dupa care se revine la evaluarea expresiei. Cand expresie devine falsa, se paraseste ciclul.
OBS. Daca expresie este falsa la prima evaluare, ciclul nu se executa niciodata!
Ex.
while((c=getchar( )) != EOF)
while( 1 )
Sintaxa:
do while(expresie);
Executie:
Se executa instructiune, apoi se evalueaza expresie si daca este adevarata se executa din nou instructiune. Cand expresie devine falsa, se paraseste ciclul.
OBS. Ciclul se executa cel putin odata.
Exemplu:
Sintaxa:
break;
Executie:
Instructiunea se utilizeaza in contextul unei instructiuni de ciclare sau al unui switch si determina parasirea fortata a acestuia.
Ex.
while((c=getchar( )) != ' ' && c != '\t' && c != '\n')
Sintaxa:
continue;
Executie:
Instructiunea se utilizeaza in contextul unei instructiuni de ciclare (nu si al unui switch!) si determina trecerea la iteratia urmatoare.
Ex.
for( i=0; i<n ; i++)
Sintaxa:
return;
sau
return expresie
Executie:
Instructiunea return transfera controlul executiei din functia apelata inapoi in functia apelanta, la adresa de revenire salvata pe stiva, in contextul de apel. Daca tipul declarat al functiei este diferit de void, atunci se utilizeaza forma a doua si expresie trebuie sa fie de tipul declarat al functiei sau convertibil la acesta.
In absenta unei instructiuni return, ultima acolada inchisa din definitia functiei joaca rolul instrucitunii return.
Ex.
Sintaxa:
goto eticheta
Executie:
Controlul executiei se transfera la instructiunea (din aceeasi functie!) precedata de eticheta
Eticheta este un identificator cu domeniul intreaga functie in care e definita si poate fi formata din caractere alfanumerice. Definirea unei etichete se face ca mai jos:
eticheta:
Utilitatea instructiunii goto se manifesta in cazul in care se doreste parasirea mai multor cicluri imbricate intr-un singur pas.
.
error:
|