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

21 مرداد 1397
Java-Wallpaper

عملگر یا 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
نویسنده شوید
دیدگاه‌های شما (1 دیدگاه)

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

حمید
15 آذر 1397
بسیار تشکر از آموزش خوب شما در مورد نام یکی از عملگرها دیکته آن اشتباه شده و معنای کلمه هم به انگلیسی کلمه جالبی نیست Urinary Operator درست این کلمه Unary Operator می باشد پیروز باشید

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.