Java dasturlash tilida yozilgan dasturlar, ishlash davomida bir qancha ma’lumotlardan foydalanadi. Bu ma’lumotlar odatda o‘zgaruvchilarda yoki massivlarda saqlanadi. Eng qiziq tomoni shundaki, bu ma’lumotlar ustida har xil amallar bajarish mumkin. Bu holda, ma’lumotlar operand deyiladi, operandlar ustida bajariladigan amallar operatorlar deb yuritiladi.

Java dasturlash tilida 4 xil operatorlar mavjud:

1. Arifmetik operatorlar.

2. Bit bo‘yicha mallar bajaruvchi operatorlar.

3. Solishtirish operatorlari.

4. Mantiqiy operatorlar.

 Arifmetik operatorlar, ma’lumotlar ustida matematik amallar bajarish uchun ishlatiladi va ular quyidagilardan iborat:

operator_1

Arifmetik amallar barcha raqam tipidagi ma’lumotlar uchun, undan tashqari «char» tipi uchun ham ishlatilishi mumkin, lekin mantiqiy tiplar uchun ishlatilmaydi. Bu amallarni ishlashiga misol ko‘ramiz.

class test{
public static void main(String args[]) {
int a=10;
int b=32;
int c=a+b;
int d=b-a;
int i=b*a;
int f=b/a;
System.out.println (c);
System.out.println (d);
System.out.println (i);
System.out.println (f);
}
}

Bu dasturnng natijasi quyidagicha bo‘ladi.

operator_2

Ko‘rinib turibdiki barcha amallar matematik amallar bilan bir xil, bo‘lish operatori natijasi butun sondan iborat, lekin haqiqiy(3.2) bo‘lishi lozim. Buning sababi barcha tiplar butun sondan iborat, shuning uchun natijaning faqat butun qismi olinmoqda.

Endi bu misolni haqiqiy sonlar uchun ishlatib ko‘ramiz.

class test{
public static void main(String args[]) {
double a=10;
double b=32;
double c=a+b;
double d=b-a;
double i=b*a;
double f=b/a;
System.out.println (c);
System.out.println (d);
System.out.println (i);
System.out.println (f);
}
}

Natija xaqiqiy qiymatlarni qabul qilmoqda.

operator_3

Keyingi operatorimiz modul bo‘yicha bo‘lish. Bu operator, bo‘lish natijasida qolgan qoldiqni aniqlash uchun ishlatiladi. Biror qiymatni juft, toqligini tekshirishda juda qo‘l keladigan operator(agar 2 soniga qoldiqsiz bo‘linsa, demak son juft). Misol ko‘ramiz,

class test{
public static void main(String args[]) {
double a=58.2;
int b=32;
double f=a%10;
int c=b%10;
System.out.println (f);
System.out.println (c);
}
}

Ikkita har xil tipdagi raqamlarni modul bo‘yicha «10» soniga bo‘lib, quyidagi natijaga erishdik:

operator_4

Navbatdagi operatorlarimiz, matematik amallarni bajarib, so‘ng biror o‘zgaruvchiga biriktirishdan iborat. Java dasturlash tilida, bu amallarni quyidagicha qisqartirish mumkin:

a+=5; <==> a=a+5;

a-=5; <==> a=a-5;

a*=5; <==> a=a*5;

a/=5; <==> a=a/5;

a%=5; <==> a=a%5;

«<==>» belgi teng kuchli degani bo‘lib, chap va o‘ng tomondagi amallar bir xil ma’noga egaligini bildiradi. Dasturda, «a+=5» yoki «a=a+5» buyruqlaridan birini ishlatish mumkin.

class test{
public static void main(String args[]) {
int a=18;
int b=44;
int c=15;
int d=99;
int i=22;
a+=5;
b-=5;
c*=5;
d/=5;
i%=5;
System.out.println (a);
System.out.println (b);
System.out.println (c);
System.out.println (d);
System.out.println (i);
}
}

Natija quyidagi ko‘rinishda bo‘ladi.

operator_5

Bu operatorlar dasturchi uchun quyidagi afzalliklarni beradi:

— kodlarni qisqartirish(a=a+5 o‘rniga a+=5);

— bu qisqartirilgan kod, yoyilib yozilgan kodga qaraganda tezroq ishlaydi. Professionallar asosan qisqartmalardan foydalanishadi.

Inkrement bu — faqat bitta operand uchun ishlatilib, uning qiymatini bittaga oshirish uchun ishlatiladi va «++» ko‘rinishida bo‘ladi.

Dekrement bu — faqat bitta operand uchun ishlatilib, uning qiymatini bittaga kamaytirish uchun ishlatiladi va «» ko‘rinishida bo‘ladi.

YUqoridagilar quyidagi ma’nolarni anglatadi.

x++;  <==> x=x+1;

x—;  <==> x=x-1;

Inkrement va dekrement operatorlar 2 xil formada ishlatilishi mumkin: prefiks, postfiks. Prefiks ko‘rinishida, «++x» tarzida yozilib, dastlab qiymat bittaga oshiriladi va biror amalda ishlatiladi. Postfiks formasida, «x++» tarzida yozilib, dastlab biror amal bajariladi, so‘ng qiymat bittaga oshiriladi. Misol,

class test{
public static void main(String args[]) {
int a=50;
int b=40;
int c=++a;
int d=b++;
System.out.println (a);
System.out.println (b);
System.out.println (c);
System.out.println (d);
}
}

operator_6

«a» o‘zgaruvchiga 50 soni o‘zlashtirilmoqda va inkrement operatorni(++a)  ishlatib, bittaga oshirilmoqda va natija 51 ga teng bo‘lmoqda.

«b» O‘zgaruvchiga 40 soni o‘zlashtirilmoqda va inkrement operatorni(b++)  ishlatib, bittaga oshirilmoqda va natija 51 ga teng bo‘lmoqda, lekin eski qiymati «d» o‘zgaruvchiga o‘zlashtirildi(dastlab o‘zlashtirildi, so‘ng bittaga oshirildi). Shuning uchun «d» o‘zgaruvchi 40 qiymatga ega bo‘ldi.

«c» o‘zgaruvchi esa, «a«ning yangi qiymatini oldi, chunki prefiks ko‘rinishi ishlatildi, ya’ni dastlab bittaga oshirildi, so‘ng «c» o‘zgaruvchiga o‘zlashtirildi.