OPERATORI PENTRU COMPARATII
Java poseda mai multi operatori folositi pentru a face comparatii intre variabile , intre variabile si literale sau intre alte tipuri de informatie dintr-un program Java .
Acesti operatori sunt folositi in expresii care intorc valori booleene true si false , in functie de valoarea de adevar a comparatiei .
In cele ce urmeaza prezentam operatorii de comparatie uzitati in Java :
Operator Semnificatie Exemplu
== egal x==3
!= diferit x!=3
< mai mic decat x<3
> mai mare decat x>3
<= mai mic sau egal cu x<=3
>= mai mare sau egal cu x>=3
In continuare avem un exemplu practic de folosire a unei comparatii :
boolean tanar;
int varsta=41;
tanar=varsta<35;
Expresia varsta<35 produce rezultatul true sau false ( in cazul nostru false ) in functie de valoarea variabilei varsta . In final valoarea variabilei " tanar " va fi astfel false .
OPERATORI LOGICI
Expresiile care produc valori booleene ( cum ar fi comparatiile ) pot fi combinate pentru a forma expresii mai complexe . Acest lucru poate fi realizat folosind operatorii logici . Acesti operatori pot fi folositi pentru combinatii logice AND ( si ) , OR ( sau ) , XOR ( sau exclusiv ) si NOT ( negare ) .
Pentru combinatiile AND se folosesc operatorii logici & si && . Atunci cand doua expresii booleene sunt conectate prin operatorii & sau && expresia combinata returneaza valoarea true doar daca ambele expresii booleene au valoarea true .
Diferenta intre & si && consta in modul in care Java evalueaza expresia combinata . Daca se foloseste & atunci se evalueaza ambele expresii indiferent de valoarea lor . Daca se foloseste && si expresia din stanga operatorului are valoarea de adevar false atunci expresia din dreapta operatorului nu mai este evaluata deoarece rezultatul final va fi oricum false .
Pentru combinatiile OR se folosesc operatorii | sau || . Aceasta combinatie de expresii intoarce valoarea true daca cel putin una dintre expresiile booleene este adevarata .
In cazul folosirii operatorului || , daca prima expresie booleena are valoarea true atunci a doua nici nu se mai evalueaza , rezultatul final fiind oricum true .
Combinatia XOR foloseste un singur simbol : " ^ " . Acesta are ca rezultat o valoare true numai daca ambele expresii booleene pe care le combina au valori diferite . In cazul in care ambele expresii au valoarea true sau ambele false atunci rezultatul va fi false .
Combinatia NOT foloseste operatorul logic " ! " , urmat de o singura expresie . Acesta schimba valoarea unei expresii booleene in acelasi fel in care simbolul " - " schimba semnul pozitiv sau negativ al unui numar .
PRECEDENTA OPERATORILOR
Atunci cand intr-o expresie se folosesc mai multi operatori Java are stabilita o anumita ordine in care ii evalueaza . In majoritatea cazurilor aceasta precedenta determina valoarea finala a expresiei .
In general , ordinea operatiilor este urmatoarea :
- operatii de incrementare si decrementare
- operatii aritmetice
- comparatii
- operatii logice
- expresii de atribuire
Daca doua operatii au aceeasi precedenta , cea aflata mai in stanga expresiei va fi calculata prima .
In tabelul de mai jos avem prezentata precedenta operatorilor :
| . [] () | Parantezele rotunde se folosesc pentru a grupa expresii ; punctul se foloseste pentru a accesa metodele si variabilele din cadrul obiectelor si claselor ; parantezele drepte sunt folosite pentru tablouri . |
| ++ -- ! instanceof | Instanceof intoarce valoarea true sau false daca obiectul este sau nu o instanta a clasei numite sau a unei subclase a acesteia |
| new (tip) expresie | Operatorul new este folosit pentru crearea de noi instante ale claselor ; in acest caz se foloseste pentru transformarea unei valori intr-un alt tip |
| * / % | Inmultire , impartire , modulo |
| + - | Adunare , scadere |
| << >> >>> | Deplasarea pe biti la stanga si la dreapta |
| < > >= <= | Comparatii |
| == != | Teste de egalitate |
| & | AND |
| ^ | XOR |
| | | OR |
| && | AND optimizat ( logic ) |
| || | OR optimizat ( logic ) |
| ?: | Operatorul conditional |
| = += -= *= /= %= | Atribuiri |
In cazul in care nu suntem siguri de precedenta diferitiolor operatori cea mai buna solutie este folosirea parantezelor pentru a impune precedenta dorita .
ARITMETICA SIRURILOR
Operatorul " + " este folosit nu doar pentru calcule matematice ci si pentru a concatena siruri .
Operatorul " + " concateneaza siruri , alte obiecte si variabile pentru a forma un singur sir .
Pentru a adauga ceva la sfarsitul unui sir se poate folosi si operatorul " += " , ca in exemplul urmator :
numeleMeu +=" Jr.";
Instructiunea anterioara este bineinteles echivalenta cu :
numeleMeu=numeleMeu + " Jr.";