JAVA PAGRINDAI

Java operatoriai

Operatoriai atlieka veiksmus su reikšmėmis ir kintamaisiais. Jais galima skaičiuoti, priskirti reikšmes, palyginti duomenis, sujungti logines sąlygas ir tiesiogiai valdyti skaičių bitus.

Operatorius išraiškoje

Paprastoje išraiškoje 100 + 50 ženklas + yra operatorius, o skaičiai – operandai. Rezultatas gali būti iš karto priskirtas kintamajam arba panaudotas kitoje išraiškoje.

int suma1 = 100 + 50;    // 150
int suma2 = suma1 + 250;  // 400
int suma3 = suma2 + suma2; // 800

Java operatoriai dažniausiai skirstomi į aritmetinius, priskyrimo, palyginimo, loginius ir bitų operatorius.

Aritmetiniai operatoriai

Aritmetiniai operatoriai atlieka matematinius veiksmus su skaitinėmis reikšmėmis.

Java aritmetiniai operatoriai
OperatoriusVeiksmasPavyzdys
+Sudėtisx + y
-Atimtisx - y
*Daugybax * y
/Dalybax / y
%Dalybos liekanax % y
++Padidinimas vienetux++
--Sumažinimas vienetux--
int x = 17;
int y = 5;

System.out.println(x + y); // 22
System.out.println(x - y); // 12
System.out.println(x * y); // 85
System.out.println(x / y); // 3
System.out.println(x % y); // 2
Sveikųjų skaičių dalyba atmeta trupmeninę dalį.

17 / 5 su dviem int operandais grąžina 3, o liekaną galima gauti su 17 % 5.

int taskai = 10;
taskai++;
System.out.println(taskai); // 11

taskai--;
System.out.println(taskai); // 10

Priskyrimo operatoriai

Operatorius = priskiria dešinėje esančią reikšmę kairėje esančiam kintamajam. Sudėtiniai operatoriai vienu žingsniu atlieka veiksmą ir išsaugo rezultatą tame pačiame kintamajame.

Dažniausi Java priskyrimo operatoriai
OperatoriusLygiavertė forma
=x = 5
+=x = x + y
-=x = x - y
*=x = x * y
/=x = x / y
%=x = x % y
int taskai = 10;
taskai += 5; // tas pats kaip taskai = taskai + 5
taskai *= 2; // tas pats kaip taskai = taskai * 2

System.out.println(taskai); // 30

Palyginimo operatoriai

Palyginimo rezultatas visada yra loginė reikšmė true arba false.

Java palyginimo operatoriai
OperatoriusReikšmė
==Lygu
!=Nelygu
>Daugiau
<Mažiau
>=Daugiau arba lygu
<=Mažiau arba lygu
int amzius = 20;

System.out.println(amzius == 20); // true
System.out.println(amzius != 20); // false
System.out.println(amzius > 18);  // true
System.out.println(amzius <= 19); // false
== ir = atlieka skirtingus veiksmus.

= priskiria reikšmę, o == palygina. Objektų turiniui, pavyzdžiui, tekstui, dažnai naudojamas metodas equals().

Loginiai operatoriai

Loginiai operatoriai jungia arba pakeičia boolean išraiškas.

  • && grąžina true, kai abi sąlygos teisingos.
  • || grąžina true, kai teisinga bent viena sąlyga.
  • ! apverčia loginę reikšmę.
int amzius = 20;
boolean turiBilieta = true;

boolean galiIeiti = amzius >= 18 && turiBilieta;
boolean taikomaNuolaida = amzius < 18 || amzius >= 65;
boolean bilietoNera = !turiBilieta;

System.out.println(galiIeiti); // true

&& ir || naudoja trumpąjį vertinimą. Jei rezultatas aiškus iš pirmos sąlygos, antroji nebevykdoma:

String vardas = null;

boolean tinkamas = vardas != null && vardas.length() >= 3;
System.out.println(tinkamas); // false

Metodas length() nekviečiamas, kai vardas yra null, todėl išvengiama klaidos.

Bitų operatoriai

Bitų operatoriai atlieka veiksmus su sveikųjų skaičių dvejetainiu atvaizdavimu. Jie naudojami vėliavoms, protokolams, žemo lygio formatams ir našiems bitų skaičiavimams.

Java bitų operatoriai
OperatoriusVeiksmas
&Bitų AND
|Bitų OR
^Bitų XOR
~Bitų inversija
<<Poslinkis į kairę
>>Ženklą išlaikantis poslinkis į dešinę
>>>Nuliniais bitais pildomas poslinkis į dešinę
int a = 6; // dvejetainiu formatu: 0110
int b = 3; // dvejetainiu formatu: 0011

System.out.println(a & b);  // 2  (0010)
System.out.println(a | b);  // 7  (0111)
System.out.println(a ^ b);  // 5  (0101)
System.out.println(a << 1); // 12 (1100)
System.out.println(a >> 1); // 3  (0011)

Operatorių prioritetas

Kai išraiškoje yra keli operatoriai, Java taiko jų prioritetą. Daugyba atliekama prieš sudėtį, tačiau skliaustais galima aiškiai pakeisti veiksmų tvarką:

int rezultatas1 = 2 + 3 * 4;   // 14
int rezultatas2 = (2 + 3) * 4; // 20

Net žinant prioriteto lentelę, skliaustai dažnai padaro sudėtingą išraišką aiškesnę skaitytojui.