عملگر یا Operator در جاوا علامتی می باشد که برای انجام عملیات ها مورد استفاده قرار می گیرد. برای مثال +، *، /، – هر کدام یک اپراتور هستند.
از معروف ترین انواع عملگرهای جاوا می توان به موارد زیر اشاره کرد:
- اپراتور یگانی یا Urinary Operator
- اپراتور جبری یا Arithmetic Operator
- اپراتور شیفت یا Shift Operator
- اپراتور ارتباطی یا Relational Operator
- اپراتور بیتی یا Bitwise Operator
- اپراتور منطقی Logical Operator
- اپراتور سه گانه Trinary Operator
- اپراتور تخصیص یا مساوی Assignment Operator
اولولیت اپراتورها در جاوا
|
عملگر یگانی در جاوا
از عملگرهای یگانی برای انجام عملیاتهای مختلفی در جاوا استفاده می شود که تنها به یک عملوند یا Operand نیاز دارد مانند:
- اضافه و کم کردن مقدار یک متغیر به اندازه یک
- منفی کردن یک عبارت
- برعکس کردن مقدار یک متغیر بولین
مثال:
class OperatorExample{ public static void main(String args[]){ int x=10; System.out.println(x++);//10 (11) System.out.println(++x);//12 System.out.println(x--);//12 (11) System.out.println(--x);//10 }}
خروجی:
10 12 12 10
مثال 2 از عملگر یگانی:
class OperatorExample{ public static void main(String args[]){ int a=10; int b=10; System.out.println(a++ + ++a);//10+12=22 System.out.println(b++ + b++);//10+11=21 }}
خروجی:
22 21
عملگر یگانی در جاوا: ~ و !
class OperatorExample{ public static void main(String args[]){ int a=10; int b=-10; boolean c=true; boolean d=false; System.out.println(~a);//-11 (minus of total positive value which starts from 0) System.out.println(~b);//9 (positive of total minus, positive starts from 0) System.out.println(!c);//false (opposite of boolean value) System.out.println(!d);//true }}
خروجی
-11 9 false true
عملگر جبری در جاوا
اپراتورهای جبری برای انجام عملیات های جمع و تفریق، تقسیم و ضرب همانند ریاضی استفاده می شوند.
مثال عملگر جبری:
class OperatorExample{ public static void main(String args[]){ int a=10; int b=5; System.out.println(a+b);//15 System.out.println(a-b);//5 System.out.println(a*b);//50 System.out.println(a/b);//2 System.out.println(a%b);//0 }}
خروجی:
15 5 50 2 0
مثال عملگر جبری در عبارتها:
class OperatorExample{ public static void main(String args[]){ System.out.println(10*10/5+3-1*4/2); }}
خروجی:
21
اپراتور شیفت به چپ:
از اپراتور شیفت به چپ یا >>، تمام بیت های موجود در یک مقدار را به تعداد مشخصی بار به سمت چپ شیفت میدهد.
مثال:
class OperatorExample{ public static void main(String args[]){ System.out.println(10<<2);//10*2^2=10*4=40 System.out.println(10<<3);//10*2^3=10*8=80 System.out.println(20<<2);//20*2^2=20*4=80 System.out.println(15<<4);//15*2^4=15*16=240 }}
خروجی:
40 80 80 240
اپراتور شیفت به راست:
اپراتور شیفت به راست یا <<، مقدار عملوند سمت چپ را به مقدار تعداد بیت های مشخص شده توسط عملوند سمت راست، به راست حرکت می دهد.
مثال:
class OperatorExample{ public static void main(String args[]){ System.out.println(10>>2);//10/2^2=10/4=2 System.out.println(20>>2);//20/2^2=20/4=5 System.out.println(20>>3);//20/2^3=20/8=2 }}
خروجی:
2 5 2
مثال (مقایسه << و<<<):
class OperatorExample{ public static void main(String args[]){ //For positive number, >> and >>> works same System.out.println(20>>2); System.out.println(20>>>2); //For negative number, >>> changes parity bit (MSB) to 0 System.out.println(-20>>2); System.out.println(-20>>>2); }}
خروجی:
5 5 -5 1073741819
اپراتورهای AND: منطقی && و بیتی &
اپراتور && در صورتی که شرط اول صحیح نباشد، شرط دوم را به طور کل چک نمی کند در حالی که اپراتور & هر دو شرط را برای صحیح بودن چک می کند.
class OperatorExample{ public static void main(String args[]){ int a=10; int b=5; int c=20; System.out.println(a<b&&a<c);//false && true = false System.out.println(a<b&a<c);//false & true = false }}
خروجی:
false false
مثال مقایسه && و &:
class OperatorExample{ public static void main(String args[]){ int a=10; int b=5; int c=20; System.out.println(a<b&&a++<c);//false && true = false System.out.println(a);//10 because second condition is not checked System.out.println(a<b&a++<c);//false && true = false System.out.println(a);//11 because second condition is checked }}
خروجی:
false 10 false 11
اپراتور های OR: منطقی || و بیتی |
اپراتور || در صورتی که شرط اول صحیح باشد، شرط دوم را چک نمی کند در حالی که اپراتور | مستقل از صحیح یا غلط بودن شرط اول، هر دو شرط را بررسی می کند.
class OperatorExample{ public static void main(String args[]){ int a=10; int b=5; int c=20; System.out.println(a>b||a<c);//true || true = true System.out.println(a>b|a<c);//true | true = true //|| vs | System.out.println(a>b||a++<c);//true || true = true System.out.println(a);//10 because second condition is not checked System.out.println(a>b|a++<c);//true | true = true System.out.println(a);//11 because second condition is checked }}
خروجی:
true true true 10 true 11
اپراتور سه تایی:
این اپراتور تنها اپراتوری می باشد که سه عملوند می گیرد و جایگزینی یک خطی برای عبارت معروف if-then-else که بسیار پرکاربرد است، می باشد.
مثال 1:
class OperatorExample{ public static void main(String args[]){ int a=2; int b=5; int min=(a<b)?a:b; System.out.println(min); }}
خروجی:
2
مثال 2:
class OperatorExample{ public static void main(String args[]){ int a=10; int b=5; int min=(a<b)?a:b; System.out.println(min); }}
خروجی:
5
اپراتور تخصیص در جاوا
اپراتور تخصیص در جاوا از پر کاربردترین اپراتورهای موجود می باشد که مقدار عملوند سمت چپ را به عملوند سمت راست تخصیص می دهد.
مثال 1:
class OperatorExample{ public static void main(String args[]){ int a=10; int b=20; a+=4;//a=a+4 (a=10+4) b-=4;//b=b-4 (b=20-4) System.out.println(a); System.out.println(b); }}
خروجی:
14 16
مثال 2:
class OperatorExample{ public static void main(String[] args){ int a=10; a+=3;//10+3 System.out.println(a); a-=4;//13-4 System.out.println(a); a*=2;//9*2 System.out.println(a); a/=2;//18/2 System.out.println(a); }}
خروجی:
13 9 18 9
مثال (اضافه کردن داده از نوع Short):
class OperatorExample{ public static void main(String args[]){ short a=10; short b=10; //a+=b;//a=a+b internally so fine a=a+b;//Compile time error because 10+10=20 now int System.out.println(a); }}
خروجی:
Compile time error
بعد از تایپ کست:
class OperatorExample{ public static void main(String args[]){ short a=10; short b=10; a=(short)(a+b);//20 which is int now converted to short System.out.println(a); }}
خروجی:
20
دستور شرطی if
عبارت if در جاوا صحیح یا غلط بودن یک شرط را بررسی می کند. عبارت if انواع متفاوتی دارد:
- عبارت if
- عبارت if-else
- عبارت if-else-if
- عبارتهای if جاسازشده
عبارت if در جاوا:
عبارت if در جاوا یک شرط را بررسی می کند و در صورت صحیح بودن آن، کد درون if را اجرا می کند.
سینتکس:
if(condition){ //code to be executed }
مثال:
public class IfExample { public static void main(String[] args) { int age=20; if(age>18){ System.out.print("Age is greater than 18"); } } }
خروجی:
Age is greater than 18
عبارت if-else در جاوا
عبارت if-else نیز شرط را چک می کند و در صورت صحیح بودن، کد درون بلوک if را اجرا می کند در غیر این صورت کد درون بلوک else.
سینتکس:
if(condition){ //code if condition is true }else{ //code if condition is false }
مثال:
public class IfElseExample { public static void main(String[] args) { int number=13; if(number%2==0){ System.out.println("even number"); }else{ System.out.println("odd number"); } } }
خروجی:
odd number
عبارت if-else-if در جاوا:
این عبارت شرطهای متوالی را چک می کند و در صورت درست بودن هرکدام، کد درون همان بلوک را اجرا می کند.
سینتکس:
if(condition1){ //code to be executed if condition1 is true }else if(condition2){ //code to be executed if condition2 is true } else if(condition3){ //code to be executed if condition3 is true } ... else{ //code to be executed if all the conditions are false }
مثال:
public class IfElseIfExample { public static void main(String[] args) { int marks=65; if(marks<50){ System.out.println("fail"); } else if(marks>=50 && marks<60){ System.out.println("D grade"); } else if(marks>=60 && marks<70){ System.out.println("C grade"); } else if(marks>=70 && marks<80){ System.out.println("B grade"); } else if(marks>=80 && marks<90){ System.out.println("A grade"); }else if(marks>=90 && marks<100){ System.out.println("A+ grade"); }else{ System.out.println("Invalid!"); } } }
خروجی:
C grade