رفتن به نوشته‌ها

فصل 7: اپراتورها و دستور شرطی if در جاوا

عملگر یا Operator در جاوا علامتی می باشد که برای انجام عملیات ها مورد استفاده قرار می گیرد. برای مثال +، *، /، – هر کدام یک اپراتور هستند.

از معروف ترین انواع عملگرهای جاوا می توان به موارد زیر اشاره کرد:

  • اپراتور یگانی یا Urinary Operator
  • اپراتور جبری یا Arithmetic Operator
  • اپراتور شیفت یا Shift Operator
  • اپراتور ارتباطی یا Relational Operator
  • اپراتور بیتی یا Bitwise Operator
  • اپراتور منطقی Logical Operator
  • اپراتور سه گانه Trinary Operator
  • اپراتور تخصیص یا مساوی Assignment Operator

اولولیت اپراتورها در جاوا

نوع اپراتور دسته بندی Precedence
یگانی پسوند expr++ expr
پیشوند ++expr —expr +expr –expr ~ !
جبری ضربی * / %
افزایشی کاهشی + –
شیفت شیفت << >> >>>
ارتباطی مقایسه < > <= >= instanceof
تساوی == !=
بیتی و (AND) بیتی &
یا (OR) انحصاری بیتی ^
(Inclusive OR) یای شاملی بیتی |
منطقی و (AND) منطقی &&
یا (OR) منطقی ||
سه تایی سه تایی ? :
تخصیص تخصیص = += -= *= /= %= &= ^= |= <<= >>= >>>=

عملگر یگانی در جاوا

از عملگرهای یگانی برای انجام عملیات‌های مختلفی در جاوا استفاده می شود که تنها به یک عمل‌وند یا 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  
}

دستور شرطی if در جاوا

مثال:

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  
}

دستور شرطی else if در جاوا

مثال:

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  
}  

دستور های شرطی متوالی else-if

مثال:

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
منتشر شده در برنامه نویسیJava (جاوا)