Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




Sumarul instructiunilor

c


Sumarul instructiunilor

Instructiunile C++ sint descrise sistematic si complet in &r.9. Cu toate acestea, dam mai jos un rezumat si citeva exemple.



Sintaxa instructiunilor:

statement:

declaration

expression_opt;

if(expression) statement

if(expression) statement else statement

switch(expression) statement

while(expression) statement

do statement while(expression);

for(statement expression_opt; expression_opt)

statement

case constant_expression: statement

default: statement

break;

continue;

return expression_opt;

goto identifier;

identifier: statement

statement_list:

statement

statement statement_list

Sa observam ca o declaratie este o instructiune si ca nu exista nici o instructiune de atribuire sau de apel; atribuirea si apelul functiei se trateaza ca expresii.

3.3.1 Teste

O valoare poate fi testata sau printr-o instructiune if sau printr-o instructiune switch:

if(expression) statement

if(expression) statement else statement

switch(expression) statement

Nu exista in C++ tipul boolean separat.

Operatorii de comparare == != < <= > >= returneaza valoarea 1 daca compararea este adevarata si 0 altfel. Nu este ceva iesit din comun ca sa consideram ca true se defineste ca 1 si false ca 0.

Intr-o instructiune if se executa prima (sau singura) in­structiune daca expresia este diferita de zero si altfel se executa cea de a doua instructiune (daca este prezenta). Aceasta implica faptul ca orice expresie intreaga poate fi utilizata ca o conditie. In particular, daca a este un intreg:

if(a)

//...........

este echivalent cu

if(a != 0)

//........

Operatorii logici &&, || si ! sint cei mai utilizati in conditii. Operatorii && si || nu vor evalua cel de al doilea argument al lor numai daca este necesar. De exemplu:

if(p && 1 < p->count)

//........

intii testeaza ca p nu este nul si numai daca este asa se testea­za 1 < p->count.

Anumite instructiuni if simple pot fi inlocuite convenabil inlocuindu-le prin expresii if aritmetice. De exemplu:

if(a <= b)

max = b;

else

max = a;

este mai bine sa fie exprimat prin

max = (a<=b) ? b:a;

Parantezele in jurul conditiei nu sint necesare, dar codul este mai usor de citit cind sint utilizate.

Anumite instructiuni switch simple pot fi scrise prin mai multe instructiuni if. De exemplu:

switch(val)

se poate scrie

if(val==1)

f();

else if(val==2)

g();

else h();

Intelesul este acelasi, dar prima versiune (cu switch) este de preferat din cauza ca natura operatiei (testul unei valori fata de un set de constante) este explicita in acest caz. Aceasta face ca instructiunea switch sa fie mai usor de citit.

Sa avem grija ca un case al unui switch trebuie terminat cumva daca nu dorim ca executia sa continue cu case-ul urmator. De exemplu:

switch(val)

cu val == 1 va imprima

case 1

case 2

default: case not found

spre marea surprindere a neinitiatilor. Cel mai frecvent mod de intrerupere al unui case este terminarea prin break, dar se poate adesea folosi o instructiune return sau goto. De exemplu:

switch(val)

Apelat cu val == 2, produce

case 2

case 1

Sa observam ca o scriere de forma

goto case 1;

este o eroare sintactica.

3.3.2. Goto

C++ are faimoasa instructiune goto.

goto identifier;

identifier: statement

Are putine utilizari in limbajele de nivel inalt, dar poate fi foarte util cind un program C++ este generat printr-un program in loc ca programul sa fie scris direct de catre o persoana; de exemplu, goto-urile pot fi utilizate intr-un analizor generat dintr-o gramatica printr-un generator de analizoare.

Goto poate fi, de asemenea, important in acele cazuri cind eficienta optimala este esentiala, de exemplu, in ciclul interior al unei aplicatii de timp real.

Una din putinele utilizari bune ale lui goto este iesirea dintr-un ciclu imbricat sau switch (instructiunea break intrerupe numai ciclul sau switch-ul cel mai interior care o contine). De exemplu:

for(int i=0; i<n; i++)

for(int j=0; j<m; j++)

if(nm[i][j] == a)

goto found;

// not found

//...........

found:

// nm[i][j] == a;

Exista de asemenea instructiunea continue, care transfera controlul la sfirsitul instructiunii ciclice, asa cum s-a expli­cat in &3.1.5.



Document Info


Accesari: 1015
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2024 )