duminică, 24 iulie 2011

Programare Java- 4

ATRIBUIREA UNEI VALORI

Atribuirea este o expresie , ea producand un rezultat . In practica atribuirea poate apare intr-un sir de instructiuni :

x=y=z=10;

windows-7-java-64-bit-download

Rezultatul acestei instructiuni este initializarea celor trei variabile cu valoarea 10 .

Partea din dreapta a unei expresii de atribuire este intotdeauna calculata inainte de a avea loc atribuirea propriu-zisa . Acest lucru face posibila folosirea unei expresii de felul urmator :

int x=5;

x=x+2;

Logic se calculeaza intai x+2 , rezultatul fiind 7 si apoi aceasta valoare este atribuita variabilei x .

Atribuirea este operatia cea mai des intalnita in programare si in consecinta au aparut mai multi operatori speciali pentru diferite cazuri de atribuire . Mai jos vom vedea operatorii de atribuire speciali precum si echivalentele functionale ale acestora :

X+=Y X=X+Y

X-=Y X=X-Y

X*=Y X=X*Y

X/=Y X=X/Y

Acesti operatori de atribuire sunt echivalenti perfect cu instructiunile pe care le inlocuiesc dar trebuie avuta mare atentie la utilizarea lor ; in cazul folosirii acestor operatori in cadrul unor expresii mai complexe exista cazuri in care acesti operatori nu mai sunt echivalenti . Ca exemplu putem lua situatia urmatoare :

X=20; Y=5;

X=X/Y+5; si

X/=Y+5;

Rezultatele celor doua instructiuni vor fi diferite : in primul caz rezultatul va fi 9 iar in cel de-al doilea 2 .

INCREMENTAREA SI DECREMENTAREA

O alta operatie uzuala in programare este adaugarea sau scaderea unei unitati dintr-o variabila intreaga . Exista operatori speciali pentru aceste expresii - operatori numiti de incrementare si decrementare .

Incrementarea unei variabile inseamna a adauga 1 la valoarea sa iar decrementarea unei variabile inseamna a scadea 1 din valoarea sa .

Operatorul de incrementare este " ++ " iar cel pentru decrementare este " - " . Acesti operatori sunt plasati imediat inainte sau dupa numele unei variabile :

int X=7;

X=X++;

In exemplul de mai sus variabila X este incrementata de la 7 la 8 .

In cazul in care operatorii de incrementare sau decrementare sunt plasati inaintea variabilei atunci ei se numesc operatori prefix iar in cazul in care apar dupa variabila se numesc operatori sufix .

Intr-o expresie simpla , de exemplu variabila-- , folosirea unui operator prefix sau sufix nu schimba rezultatul . Atunci cand operatiunile de incrementare sau decrementare fac parte dintr-o expresie mai complexa optiunea intre prefix si sufix devine importanta .

Sa comentam putin exemplul de mai jos :

int x,y,z;

x=42; y=x++ ; z=++x ;

Aceste doua expresii produc rezultate diferite din cauza diferentelor intre operatorii sufix si prefix . Atunci cand folosim operatori sufix , ca in y=x++ , variabila y primeste valoarea lui x inainte ca aceasta sa creasca cu 1 astfel incat y va fi egal cu 42 ; la folosirea operatorilor prefix , ca in z=++x , variabila x este mai intai incrementata si apoi valoarea sa este atribuita lui y , astfel incat z va avea valoarea 44 .

Ca si incazul operatorilor speciali de atribuire trebuie avuta mare grija in cazul folosirii operatorilor de incrementare si decrementare in cazul unor expresii mai complexe - existand posibilitatea introducerii unei erori destul de greu de depistat in cadrul programului .