Ukoliko ste dobro prostudirali tipove podataka, promenjive
i konstante u Java programskom jeziku; pogledajte prethodni post ovde; onda ste
spremni da se upoznate i sa operatorima u Java programskom jeziku. Ukoliko poznajete
C# programski jezik i pored toga što je Java programski jezik nasledio
operatore iz C++ programskog jezika; imaćete utisak da C# programski jezik ima iste
operatore kao Java programski jezik. Razlika je jedino u tome što Java programski jezik nema overloading operator niti podržava pokazivače. C# programski jezik ne koristi pokazivače ali ih podržava u unsafe modu što Java programski jezik ne radi. Razlika je i u tome da Java programski jezik deli operatore
na više načina. Najčešći način je da Java programski jezik deli operatore u
četiri osnovne grupe i sve ostalo u dodatne operatore.
Kreirajmo jedan jednostavan program i nazovimo ga relational_operators. Unesite sledeći kod:
Kreirajte novi program i nazovite ga logical_operators. Unesite sledeći kod:
- Aritmetički operatori
- Operatori nad bitovima
- Operatori poređenja
- Logički operatori
- Dodatni operatori
( Operatori u Java programskom jeziku se mogu deliti na više podela )
Mi
ćemo se u ovom postu detaljno baviti osnovnim operatorima dok ćemo se dodatnim
operatorima baviti u nekim drugim postovima kada budete imali veće znanje o Java programskom jeziku i kada budemo programirali komplikovanije Java aplikacije.
Za sada se potrudite da dobro razumete kako se koriste operatori u Java programskom jeziku. Ukoliko ne znate kako da napravite najjednostavniju
digitron aplikaciju u nekom programskom jeziku, onda definitivno ne znate kako
da koristite aritmetičke operatore u programiranju. Zato je najbolje da krenemo
od aritmetički operatora.
Aritmetički
operatori
Aritmetički
operatori koje koristite na vašim kalkulatorima i matematičkim izrazima se često
koriste u programiranju; i kada je Java programski jezik u pitanju opernati aritmetičkih
operatora moraju da budu numeričkog tipa ili tipa char. Ne možete da ih
primenite na boolean tip. Ovo su aritmetički operatori:
- + sabiranje
- - oduzimanje,
unarni minus
- * množenje
- / deljenje
- % modulo, ostatak pri deljenju
- ++ inkrementiranje
- -- dekrementiranje
- += dodeljivanje uz
sabiranje
- -= dodeljivanje uz
oduzimanje
- *= dodeljivanje uz
množenje
- /= dodeljivanje uz
deljenje
- %= dodeljivanje uz
računanje ostatka pri deljenju
( Aritmetički operatori u Java programskom jeziku )
Mi
nećemo u ovom postu praviti program tipa digitron, već ćemo napraviti
jednostavan program koji će nam ilustrovati upotrebu svih navedenih
aritmetičkih operatora. Sa ovim znanjem sami možete kreirati aplikaciju tipa
digitron. Zato kreirajte novi program i nazovite ga arithmetic_operators.
Unesite sledeći kod:
package arithmetic_operators;
public class arithmetic_operators {
public static void main(String[] args) {
// TODO Auto-generated method stub
int a = 28;
int b = 5;
int c;
double d, e, f;
System.out.println();
System.out.println(" *** ARITHMETIC
OPERATORS *** ");
System.out.println();
System.out.println("a = " + a);
System.out.println("a = " + b);
System.out.println();
c = a + b;
System.out.println("a + b = " + c);
c = a - b;
System.out.println("a - b = " + c);
c = a * b;
System.out.println("a * b = " + c);
// to
convert integer into double
d = a;
e = b;
f = d / e;
System.out.println("a / b = " + f);
c = a % b;
System.out.println("a % b = " + c);
System.out.println();
a++;
System.out.println("a++ = " + a);
a--;
System.out.println("a-- = " + a);
System.out.println();
a = 28;
a += b;
System.out.println("a += b = " + a);
a = 28;
a -= b;
System.out.println("a -= b = " + a);
a = 28;
a *= b;
System.out.println("a *= b = " + a);
System.out.println("a /= b = " + f);
a = 28;
a %= b;
System.out.println("a %= b = " + a);
System.out.println();
}
}
U
navedenom programu inicijalizujemo dve promenjive tipa integer, zatim sa tim
vrednostima testiramo sve aritmetičke operatore. S obzirom da kod deljenja ne
želimo da rezultat a / b bude
zaokružen na 5 jer radimo sa
promenjivima tipa integer, neophodno je da kreiramo promenjive tipa float ili
double. U starijim verzijama Java programskog jezika bi samo uradili cast –
kasting tipa double; ali to ne funkcioniše više. Zato smo deklarisali tri nove
promenjive d, e, f tipa double da oni preuzmu automatski vrednosti tipa integer
i pretvore ih u tipa double. Na taj način smo dobili rezultat sa pokretnim
zarezom; a / b =
5.6 Interesantno
je napomenuti da prilikom ispisa na terminal promenjive double ali i ostalih
numerički vrednosti u kombinaciji sa tipom string ne bi bilo moguće u Python
programskom jeziku bez kastinga tipa str – string. To samo potvrđuje koliko Java programski jezik ima sličnosti sa C# programskim jezikom. Kad pokrenete navedeni
program dobićete sledeće rezultate koje prikazuju vrednosti svih aritmetičkih izraza
i na osnovu istog videti kako koji aritmetički operator funkcioniše.
*** ARITHMETIC
OPERATORS ***
a = 28
a = 5
a + b = 33
a - b = 23
a * b = 140
a / b = 5.6
a % b = 3
a++ = 29
a-- = 28
a += b = 33
a -= b = 23
a *= b = 140
a /= b = 5.6
a %= b = 3
Isti
ovaj program možete pogledati i na video-u:
( Java for Beginners - 08. Arithmetic Operators )
Operatori
za bitove
Da bi
ste razumeli kako računar radi sa bitovima, oktalnim i heksadecimalnim
vrednostima i kako se pomeraju bitovi u levu ili desnu stranu i ispunjavaju
nulama; za to je potrebno da izdvojite mnogo vremena. Pronađete nekoliko dobrih
starih knjiga i to prostudirate detaljno mimo učenja Java programskog jezika. Za
sada se bar upoznajte sa operatorima koje koriste bitovi. To su:
- ~
NOT negacija bitova operanda
- & AND konjukcija
bitova
- | OR disjunkcija bitova
- ^ XOR isključiva
disjunkcija bitova
- >> pomeranje bitova u
desno
- >>> pomeranje bitova u desno
uz dopunjavanje nulama
- << pomeranje bitova u
levo
- &= dodeljivanje uz
konjukciju bitova
- != dodeljivanje uz
konjukciju bitova
- ^= dodeljivanje uz
isključivu disjunkciju bitova
- >>= dodeljivanje uz
pomeranje u desno
- >>>= dodeljivanje uz pomeranje u
desno uz dopunjavanje nulama
- <<=
dodeljivanje uz
pomeranje ulevo
( Operatori za bitove u Java programskom jeziku )
Kreiraćemo
jednu simulaciju koristeći navedene operatore. Kreirajte novi program i
nazovite ga bits_operators. Unesite sledeći kod:
package bits_operators;
public class bits_operators {
public static void main(String[] args) {
// TODO Auto-generated method stub
String binaryNumbers[] = {
"0000", "0001", "0010", "0011", "0100", "0101", "0110", "0111",
"1000", "1001", "1010", "1011", "1100", "1101", "1110", "1111" };
int a = 3; // 0011
int b = 5; // 0101
System.out.println();
System.out.println(" *** BITS
OPERATORS *** ");
System.out.println();
System.out.println(" a = " + binaryNumbers[a]);
System.out.println(" b = " + binaryNumbers[b]);
System.out.println();
int c = a | b;
System.out.println(" a | b = " + binaryNumbers[c]);
int d = a & b;
System.out.println(" a & b =
" + binaryNumbers[d]);
int e = a ^ b;
System.out.println(" a ^ b = " + binaryNumbers[e]);
int f = (-a & b) | (a & -b);
System.out.println(" -a & b | a
& -b = " + binaryNumbers[d]);
int g = -a + 0x0f;
System.out.println(" -a + 0x0f =
" + binaryNumbers[g]);
System.out.println();
int h = a << 2;
System.out.println(" a << 2 =
" + binaryNumbers[h]);
int i = b >> 2;
System.out.println(" b >> 2 =
" + binaryNumbers[i]);
System.out.println();
}
}
Znam;
nismo još učili nizove; učićemo; za sada samo pogledajte kako niz tipa String
izgleda. On je ovde čisto da predstavi svih 16 bitova u bitnim brojevima 0 i 1
umesto da deklarišemo 16 promenjivih tipa String. Zatim pustimo naš program da
on vrši izraze operatora za bitove umesto da mi to radimo pešaka i da nam
pokaže rezultate. Ovo je jedan mali izuzetno koristan program gde možete videti
rezultate kako Java program radi sa operatorima za bitove. Kad izvršite
navedeni kod dobiće te sledeći rezultat:
*** BITS OPERATORS ***
a = 0011
b = 0101
a | b = 0111
a & b = 0001
a ^ b = 0110
-a & b | a & -b = 0001
-a + 0x0f = 1100
a << 2 = 1100
b >> 2 = 0001
Kako
isti ovaj program radi, možete pogledati i na video-u:
( Java for Beginners - 09. Bit-wise Operators )
Operatori
za poređenje
Operatori
za poređenje utvrđuju odnos jednog operanda sa drugim dajući nam logičnu
vrednost tipa boolean. Često se koristi u if iskazima odlučivanja i petljama.
Operatori za poređenje u Java programskom jeziku se ništa ne razlikuju od
operatora za poređenje u C# programskom jeziku ali i u drugim programskim
jezicima. Svih šest operatora za poređenje su:
- == jednako
- != različito
- > veće
od
- >= veće ili jednako od
- < manje od
- <= manje ili jednako od
Kreirajmo jedan jednostavan program i nazovimo ga relational_operators. Unesite sledeći kod:
package relational_operators;
public class relational_operators {
public static void main(String[] args) {
// TODO Auto-generated method stub
int a = 28;
int b = 5;
boolean c = false;
System.out.println();
System.out.println(" *** RELATIONAL
OPERATORS *** ");
System.out.println();
System.out.println("a = " + a);
System.out.println("b = " + b);
System.out.println("c = " + c);
System.out.println();
c = a == b;
System.out.println("a == b : " + c);
c = a != b;
System.out.println("a != b : " + c);
c = a > b;
System.out.println("a > b : " + c);
c = a >= b;
System.out.println("a >= b : " + c);
c = a < b;
System.out.println("a < b : " + c);
c = a <= b;
System.out.println("a <= b : " + c);
c = a == b;
System.out.println();
}
}
Kao
što možete videti u navedenom primeru mi smo deklarisali dve promenjive tipa integer;
dodelili dve numeričke vrednosti, čisto da bi smo imali šta porediti. Ali za
rezultat smo naravno koristili promenjivu tipa boolean. Numerička vrednost može
biti i čitav proračun nekog matematičkog zadatka; čak i u tom slučaju program
će prvo izvršiti proračun; svesti ga na jednu cifru i izvršiti poređenje. Kad izvršite
navedeni kod; rezultati će biti sledeći:
*** RELATIONAL
OPERATORS ***
a = 28
b = 5
c = false
a == b : false
a != b : true
a > b : true
a >= b : true
a < b : false
a <= b : false
Kako
isti ovaj program radi, možete pogledati i na video-u:
( Java for Beginners - 10. Relational Operators )
Logički
operatori
Operatori
za logične vrednosti deluju samo na operande tipa boolean i daju rezultat tipa
boolean. Ono što trebate znati jeste da logički operatori deluju isto kao i
operatori za bitove; osim što umesto bitova koriste boolean vrednosti. Logičke
operatore ćete često koristiti u projektima. Pogledajte koji su to logički
operatori u Java programskom jeziku:
- & AND logička konjukcija
- ! OR logička disjunkcija
- ^ OR ili XOR logička isključiva disjunkcija
- || kratko
spojena disjunkcija
- && kratko
spojena konjukcija
- ! NOT logična unarna negacija
- &= dodeljivanje
uz logičku konjukciju
- != dodeljivanje
uz logičku disjunkciju
- ^= dodeljivanje
uz logičku disjunkciju
- == jednako
- != različito
- ?: ternarni
uslovni operator
Kreirajte novi program i nazovite ga logical_operators. Unesite sledeći kod:
package logical_operators;
public class logical_operators {
public static void main(String[] args) {
// TODO Auto-generated method stub
boolean a = true;
boolean b = false;
boolean c = false;
System.out.println();
System.out.println(" *** LOGICAL
OPERATORS *** ");
System.out.println();
System.out.println("a = " + a);
System.out.println("b = " + b);
System.out.println("c = " + c);
System.out.println();
c = a & b;
System.out.println(" a & b :
" + c);
c = a | b;
System.out.println(" a | b : " + c);
c = a ^ b;
System.out.println(" a ^ b : " + c);
c = a || b;
System.out.println(" a || b : " + c);
c = a
&& b;
System.out.println(" a && b
: " + c);
c = ! a;
System.out.println(" ! a : " + c);
c = a &= b;
System.out.println(" a &= b :
" + c);
c = a |= b;
System.out.println(" a |= b : " + c);
c = a ^= b;
System.out.println(" a ^= b : " + c);
c = a == b;
System.out.println(" a == b : " + c);
c = a != b;
System.out.println(" a != b : " + c);
c = a == true ? b == true : b == false;
System.out.println(" a == true ? b
== true : b == false : " + c);
}
}
U navedenom programu možete videti kao što smo
rekli da za logičke operatore koristimo promenjive tipa boolean. Obratite
pažnju na ternarni uslovni operator. On se negde ne broji kao logički operator
dok se negde broji u zavisnosti od podele. Jedno je sigurno, nešto je kompleksniji.
U navedenom primeru znači; da je a tačno bez obzira da li je b tačno ili
netačno. Ovaj operator ali i druge dodatne operatore će te upoznati kada ih
budete koristili da pojednostavite strukturu i proračune u vašim projektima. Kad
izvršite ovaj kod; rezultat će biti sledeći:
*** LOGICAL OPERATORS
***
a = true
b = false
c = false
a & b : false
a | b : true
a ^ b : true
a || b : true
a && b : false
! a : false
a &= b : false
a |= b : false
a ^= b : false
a == b : true
a != b : false
a == true ? b == true
: b == false : true
Kako
isti ovaj program radi, možete pogledati i na video-u:
( Java for Beginners - 11. Logical Operators )
Nema komentara:
Objavi komentar