با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن. و کاربرانی که دوره کامل آموزش برنامه نویسی جاوا را دنبال می کنند. تمامی فرمول ها و عملیات محاسباتی از ترکیب چهار عمل اصلی جمع ، تفریق ، ضرب و تقسیم منطقی و غیر منطقی انجام می شود. این عملیات اصلی محاسباتی در تمام زبان های برنامه نویسی از جمله جاوا پایه و اساس بسیاری از محاسبات و فعالیت های ریاضی دیگر می شود. هر کدام از زبان های برنامه نویسی نمادهایی را به عنوان عملگرهای جمع ، تفریق و… در اختیار برنامه نویسان قرار می دهد. از رو این یادگیری این عملگرهای پایه بسیار حائز اهمیت بوده و مباحث این بخش را به خود اختصاص می دهد. برای آشنایی با عملگرهای اصلی در جاوا در ادامه ی مباحث این بخش با ما همراه باشید.
جاوا یک مجموعه غنی از عملگرهای مختلف را برای دستکاری متغیرها فراهم می کند.
عملگرهای اصلی در جاوا به گروه های زیر تقسیم می شود:
عملگرهای ریاضی در عبارات ریاضی به همان شیوه ای که در جبر استفاده می شوند بکار می روند.
جدول زیر شامل لیست عملگرهای محاسباتی در جاوا می باشد:
(فرض کنید متغیر عدد صحیح A دارای مقدار ۱۰ و متغیر B دارای مقدار ۲۰ باشد)
عملگر | توضیحات | مثال |
---|---|---|
+ (جمع) | ارزش دو متغیر را با هم جمع می کند | A + B will give 30 |
– (تفریق) | ارزش دو متغیر را از هم کم می کند. | A – B will give -10 |
* (ضرب) | ارزش دو متغیر را در هم ضرب می کند. | A * B will give 200 |
/ (تقسیم) | ارزش متغیر سمت راست عملگر را بر متغیر سمت چپ تقسیم می کند. | B / A will give 2 |
% (درصد) | باقی مانده ی تقسیم ارزش متغیر سمت راست عملگر بر متغیر سمت چپ را محاسبه می کند. | B % A will give 0 |
++ (افزایش) | ارزش یک متغیر را یک واحد افزایش می دهد. | B++ gives 21 |
— (کاهش) | ارزش یک متغیر را یک واحد کاهش می دهد. | B– gives 19 |
جدول زیر شامل عملگرهای ارتباطی در جاوا می باشد:
(فرض کنید متغیر عدد صحیح A دارای مقدار ۱۰ و متغیر B دارای مقدار ۲۰ باشد)
عملگر | توضیحات | مثال |
---|---|---|
== (مساوی) | برابر بودن مقادیر دو متغیر را بررسی می کند اگر مساوی بودن True و در غیر این صورت False را برمی گرداند. | (A == B) is not true. |
!= (نامساوی) | نابرابر بودن مقادیر دو متغیر را بررسی می کند اگر نامساوی بودن True و در غیر این صورت False را برمی گرداند. | (A != B) is true. |
> (بزرگتر از) | بزرگتر بودن مقدار متغیر سمت چپ عملگر از سمت راست عملگر را بررسی می کند که اگر بزرگتر باشد True در غیر این صورت false است. | (A > B) is not true. |
< (کوچکتر از) | کوچکتر بودن مقدار متغیر سمت چپ عملگر از سمت راست عملگر را بررسی می کند که اگر کوچکتر باشد True در غیر این صورت false است. | (A < B) is true. |
>= (بزرگتر مساوی) | بزرگتر یا مساوی بودن مقدار متغیر سمت چپ عملگر از سمت راست عملگر را بررسی می کند که اگر بزرگتر یا مساوی باشد True در غیر این صورت false است. | (A >= B) is not true. |
<= (کوچکتر مساوی | کوچکتر یا مساوی بودن مقدار متغیر سمت چپ عملگر از سمت راست عملگر را بررسی می کند که اگر کوچکتر یا مساوی باشد True در غیر این صورت false است. | (A <= B) is true. |
جاوا چندین عملگر بیتی را تعریف می کند که می تواند به انواع عدد صحیح، طول، int، کوتاه، کاراکتر و بایت اعمال شود.
عملگرهای bitwise بر روی بیت ها کار می کند و عملیات بیت بیت انجام می دهد.
فرض کنید اگر a = 60 و b = 13 باشد؛ در حال حاضر در قالب باینری آنها به شرح زیر است:
a = 0011 1100
b = 0000 1101
a&b = 0000 1100
a|b = 0011 1101
a^b = 0011 0001
~a = ۱۱۰۰ ۰۰۱۱
جدول زیر شامل لیست عملگرهای بیتی در جاوا می باشد:
(فرض کنید متغیر عدد صحیح A دارای ۶۰ باشد و متغیر B آن ۱۳ باشد.)
عملگر | توضیحات | مثال |
---|---|---|
& (عملگر بیتی and) | اگر هر دو بیت متناظر ۱ باشد نتیجه ۱ در غیر این صورت ۰ است. | A & B = 0000 1100 |
| (عملگر بیتیor) | اگر هر دو یا یکی از دو بیت متناظر ۱ باشد نتیجه ۱ در غیر این صورت ۰ است. | A | B = 0011 1101 |
^ (عملگر بیتی XOR) | اگر هردو بیت متناظر برابر باشد نتیجه ۱ در غیر این صورت ۰ است. | A ^ B = 0011 0001 |
~ (عملگر بیتی compliment) | مکمل مقدار بیتی را محاسبه می کند. | A ~ 2= 1100 0011 ‘ |
<< (left shift) | تمام بیت های یک مقدار را به یک بیت به سمت چپ شیفت می دهد. | A << 2 = 1111 0000 |
>> (right shift) | تمام بیت های یک مقدار را به یک بیت به سمت راست شیفت می دهد. | A >> 2 = 1111 |
>>> (zero fill right shift) | اولین بیت صفر را در مقدار مربوطه پیدا کرده و سپس بیت های سمت راست آن را ۱ و باقی مانده از سمت چپ را با صفر پر می کند. | A >>>2 = 0000 1111 |
جدول زیر شامل لیست عملگرهای منطقی در جاوا می باشد:
فرض می کنیم متغیرهای A و B از نوع Boolean بوده و مقدار A برابر با true و B نیز false می باشد.
عملگر | توضیحات | مثال |
---|---|---|
&& (منطقی and) | اگر مقدار دو عبارت true باشد true و در غیر این صورت false را برمی گرداند. | A && B= false |
|| (منطقی or) | اگر مقدار حداقل یکی از دو عبارت true باشد true و در غیر این صورت false را برمی گرداند. | A || B= true |
! (منطقی not) | مقدار true یا false یک عبارت را معکوس می کند. | A && B= true |
جدول زیر شامل لیست عملگرهای تخصیص در جاوا می باشد.
عملگر | توضیحات | مثال |
---|---|---|
= | نتیجه ی محاسبه ی دو عبارت را در متغیر سمت راست = قرار می دهد. | C = A + B |
+= | مقدار متغیر سمت راست = را با سمت چپ + جمع کرده و نتیجه را در متغیر سمت چپ + قرار می دهد. | C += A برابر است با C = C + A |
-= | مقدار متغیر سمت راست = را از سمت چپ – جمع کرده و نتیجه را در متغیر سمت چپ – قرار می دهد. | C -= A برابر است با C = C – A |
*= | مقدار متغیر سمت راست = را با سمت چپ * ضرب کرده و نتیجه را در متغیر سمت چپ * قرار می دهد. | C *= A برابر است با C = C * A |
/= | مقدار متغیر سمت چپ / را بر سمت راست = تقسیم کرده و نتیجه را در متغیر سمت چپ / قرار می دهد. | C /= A برابر است با C = C / A |
%= | باقی مانده تقسیم مقدار متغیر سمت چپ % بر سمت راست = را محاسبه کرده و نتیجه را در متغیر سمت چپ % قرار می دهد. | C %= A برابر است با C = C % A |
عملگرهای ارتباطی منطقی | ||
<<= | مقدار متغیر را به اندازه ی سمت راست = به چپ شیفت داده و نتیجه را در متغیر قرار می دهد. | C <<= 2 برابر است با C = C << 2 |
>>= | مقدار متغیر را به اندازه ی سمت راست = به راست شیفت داده و نتیجه را در متغیر قرار می دهد. | C >>= 2 برابر است با C = C >> 2 |
&= | مقدار AND بیتی متغیر را با سمت راست = محاسبه کرده و نتیجه را در متغیر قرار می دهد. | C &= 2 برابر است با C = C & 2 |
^= | مقدار XOR بیتی متغیر را با سمت راست = محاسبه کرده و نتیجه را در متغیر قرار می دهد. | C ^= 2 برابر است با C = C ^ 2 |
|= | مقدار OR بیتی متغیر را با سمت راست = محاسبه کرده و نتیجه را در متغیر قرار می دهد. | C |= 2 برابر است با C = C | 2 |
چند عملگر دیگر نیز در زبان جاوا پشتیبانی می شود:
این یک عملگر شرطی ساده است که سه عبارت را می پذیرد و برای ارزیابی عبارات بولی بکار می رود.
این عملگر بر اساس شرط مشخص شده یکی از دو مقدار مشخص شده را اختصاص می دهد.
ساختار این عملگر بصورت زیر می باشد:
1 | variable x = (expression) ? value if true : value if false |
مثال:
1 2 3 4 5 6 7 8 9 10 11 12 | public class Test { public static void main(String args[]) { int a, b; a = 10; b = (a == 1) ? 20: 30; System.out.println( "Value of b is : " + b ); b = (a == 10) ? 20: 30; System.out.println( "Value of b is : " + b ); } } |
کد فوق نتیجه ی زیر را تولید خواهد کرد:
1 2 | Value of b is : 30 Value of b is : 20 |
این عملگر فقط برای متغیرهای مرجع شی استفاده می شود. عملگر فوق بررسی می کند که آیا شی از یک نوع خاص (نوع کلاس یا نوع رابط) است یا خیر.
ساختار عملگر instanceof:
1 | ( Object reference variable ) instanceof (class/interface type) |
مثال:
1 2 3 4 5 6 7 8 9 | public class Test { public static void main(String args[]) { String name = "James"; boolean result = name instanceof String; System.out.println( result ); } } |
کد فوق نتیجه ی زیر را تولید خواهد کرد:
1 | true |
همچنین این عملگر بررسی می کند که آیا یک متغیر از جنس یک شیء هست یا خیر.
1 2 3 4 5 6 7 8 9 10 11 | class Vehicle {} public class Car extends Vehicle { public static void main(String args[]) { Vehicle a = new Car(); boolean result = a instanceof Car; System.out.println( result ); } } |
کد فوق نتیجه ی زیر را تولید خواهد کرد:
1 | true |
در تمام زبان های برنامه نویسی عملگرها در هنگام محاسبه از یک ترتیب اولویت مشخصی پیروی می کند.
در جاوا نیز عملگرها یک ترتیب اولویت خاصی دارند که به شرح جدول زیر می باشد:
دسته | عملگر | ترتیب |
---|---|---|
Postfix | >() [] . | چپ به راست |
Unary | >++ - - ! ~ | راست به چپ |
Multiplicative | >* / | چپ به راست |
Additive | >+ - | چپ به راست |
Shift | >>> >>> << | چپ به راست |
Relational | >> >= < <= | چپ به راست |
Equality | >== != | چپ به راست |
Bitwise AND | >& | چپ به راست |
Bitwise XOR | >^ | چپ به راست |
Bitwise OR | >| | چپ به راست |
Logical AND | >&& | چپ به راست |
Logical OR | >|| | چپ به راست |
Conditional | ?: | راست به چپ |
Assignment | >= += -= *= /= %= >>= <<= &= ^= |= | راست به چپ |
همانطور که در ابتدای آموزش نیز اشاره کردیم تمامی محاسباتی که با زبان های برنامه نویسی مختلف نوشته می شود از چند عملگر اصلی و پایه تشکیل می شود. از این رو آشنایی و یادگیری چگونگی استفاده از این عملگرها از اهمیت ویژه ای برخوردار است و مباحث آموزش عملگرهای اصلی در جاوا را به خود اختصاص می دهد.