آشنایی با نحوۀ به‌کارگیری اپراتورها در زبان برنامه‌نویسی جاوا


در این آموزش قصد داریم تا با نحوۀ استفاده از عملگرها در زبان برنامه‌نویسی جاوا آشنا شده و ببینیم که چگونه می‌توان برخی عملیات ریاضیاتی نظیر جمع، تفریق و غیره را روی داده‌های مورد نظر اِعمال کرده و پردازش‌های مورد نیاز را روی آن‌ها انجام داد به علاوه اینکه به بررسی نحوۀ اولویت‌بندی اپراتورها خواهیم پرداخت.

برای شروع، در ابتدا با به‌کارگیری دیتا تایپ int متغیری تحت عنوان studentNumber تعریف کرده و مقداری معادل عدد 121 را به آن اختصاص می‌دهیم که برای این منظور داریم:

int studentNumber = 121;

در ادامۀ آموزش برخی از رایج‌ترین عملگرهای ریاضیاتی را معرفی کرده و نحوۀ پیاده‌سازی هر یک به منظور اِعمال روی مقدار منتسب به متغیر studentNumber در دستور فوق را بررسی می‌نماییم.

اپراتور Plus
با توجه به مقدار اختصاص‌یافته به متغیر studentNumber معادل عدد 121، اگر بخواهیم عددی مثل 10 را با مقدار منتسب به متغیر مذکور جمع کنیم، از اپراتور + استفاده می‌کنیم:

int studentNumber = 121;
studentNumber = studentNumber + 10;

در کد فوق، با به‌کارگیری نوع دادۀ int متغیری تحت عنوان studentNumber تعریف کرده و مقدار 121 را بدان منتسب کرده‌ایم و در ادامه با استفاده از اپراتور + عدد 10 را با 121 جمع کرده و نتیجۀ حاصل را مجدداً به متغیر studentNumber اختصاص داده‌ایم که بدین ترتیب مقدار جدید جایگزین مقدار پیشین می‌گردد. به علاوه، روش دیگری جهت افزودن یک مقدار به عدد اختصاص‌یافته به متغیر مذکور وجود دارد که منجر به کوتاهی و سادگی کد فوق می‌شود که برای این منظور دستور سطر دوم از مثال پیشین را به صورت زیر تغییر می‌دهیم:

int studentNumber = 121;
studentNumber += 10;

همان‌طور که ملاحظه می‌شود، در این روش، عدد 10 با مقدار منتسب به متغیر studentNumber معادل عدد 121 جمع شده و در نهایت نتیجۀ حاصل برابر با عدد 131 به متغیر studentNumber اختصاص داده می‌شود.

اپراتور Minus
چنانچه بخواهیم عدد 10 را از مقدار منتسب به متغیر در مثال قبل کم کنیم، اپراتور - را مورد استفاده قرار می‌دهیم که در مثال زیر نحوۀ اِعمال آن روی متغیر مذکور را آورده‌ایم:

int studentNumber = 121;
studentNumber = studentNumber - 10;

در دستور فوق عدد 10 از مقدار اختصاص‌یافته به متغیر studentNumber معادل عدد 121 کم شده و نتیجۀ حاصل جایگزین مقدار پیشینِ منتسب به این متغیر می‌گردد. همچنین به منظور ساده‌سازی سورس‌کد روش دیگری می‌توان مورد استفاده قرار داد که در مثال زیر نحوۀ پیاده‌سازی آن را بررسی می‌نماییم:

int studentNumber = 121;
studentNumber -= 10;

در این روش نیز شاهد خروجی مشابهی همچون روش اول هستیم و عدد 111 حاصل خواهد شد.

اپراتور Multiply
در ادامه، قصد داریم تا یک مقدار عددی را در مقدار اختصاص‌یافته به متغیر studentNumber ضرب کنیم که برای این منظور اپراتور * را به کار می‌گیریم که نحوۀ پیاده‌سازی آن به صورت زیر می‌باشد:

int studentNumber = 121;
studentNumber = studentNumber * 10;

در کد فوق، مقدار منتسب به متغیر studentNumber در عدد 10 ضرب شده و عدد به دست آمده مجدداً در متغیر مذکور ذخیره می‌شود. همچنین مشابه روش‌های پیشین و به منظور ساده‌سازی سورس‌کد، می‌توانیم به روش زیر نیز عمل نماییم:

int studentNumber = 121;
studentNumber *= 10;

نتیجۀ حاصل از ضرب مقدار اختصاص‌یافته به متغیر studentNumber برابر با عدد 1210 می‌باشد که جایگزین مقدار قبلیِ منتسب به متغیر مذکور شده و در آن ذخیره می‌گردد.

اپراتور Division
به منظور تقسیم مقدار اختصاص‌یافته به متغیر studentNumber بر عددی دلخواه می‌توانیم از اپراتور / استفاده نماییم که برای این منظور دستوری مانند زیر خواهیم داشت:

int studentNumber = 121;
studentNumber = studentNumber / 10;

در واقع، مقدار منتسب به متغیر studentNumber معادل عدد 121 بر عدد 10 تقسیم شده و عدد حاصل به متغیر مذکور اختصاص داده می‌شود (توجه داشته باشیم که مقدار حاصل از عملیات تقسیم در مثال فوق عدد 12.1 می‌باشد اما از آنجایی که جنس متغیر studentNumber از نوع دادۀ int تعریف شده است، مقادیر اعشاری را نمی‌تواند در خود ذخیره کند که از همین روی بخش اعشاری عدد حذف شده و فقط مقدار صحیح در آن ذخیره می‌شود.) به منظور ساده‌سازی سورس‌کد در رابطه با پیاده‌سازی اپراتور تقسیم نیز می‌توانیم مشابه روش‌های قبل عمل کرده و آن را به صورت زیر بر روی مقادیر عددی مورد نظر اِعمال کنیم:

int studentNumber = 121;
studentNumber /= 10;

نتیجۀ حاصل از دستورات فوق نیز مشابه روش قبل بوده و بخش صحیح حاصل از عملیات تقسیم در متغیر studentNumber ذخیره می‌شود.

این بخش از محتوا مخصوص کاربرانی است که ثبت‌نام کرده‌اند.
جهت مشاهدهٔ این بخش از محتوا لاگین نمایید.

اولویت اپراتورها در زبان برنامه‌نویسی جاوا

در پروسهٔ توسعهٔ نرم‌افزار برخی مواقع نیاز داریم تا بیش از یک عمل ریاضیاتی را روی دیتای مورد استفاده در برنامۀ خود اِعمال کنیم که برای این منظور می‌باید از اولویت عملگرها در این زبان مطلع باشیم. برای مثال، فرض کنیم که با استفاده از دیتا تایپ int دو متغیر به نام‌های x و y به صورت زیر تعریف کرده‌ایم به طوری که متغیر x دارای هیچ داده‌ای نمی‌باشد اما متغیر y دارای مقدار اولیهٔ 10 است:

int x;
int y = 10;

حال اگر فرض کینم که مقدار حاصل از ضرب عدد ذخیره‌شده در متغیر y در عدد 2 سپس جمع آن با عدد 6 را در متغیر x نگهداری کنیم، لازم است تا کد فوق را به صورت زیر تغییر دهیم:

int x;
int y = 10;
x = y * 2 + 6;

نتیجۀ حاصل از اجرای چنین دستوری هم می‌تواند عدد 26 و هم 80 باشد و بسته به اینکه اول عمل ضرب انجام شود یا عمل جمع، مقادییر متفاوتی به متغیر x منتسب می‌شوند.

نکته
به طور کلی، در زبان برنامه‌نویسی جاوا عملیات Incrementing و Decrementing از اولویت بالاتری برخوردار بوده و در ابتدا رخ می دهند سپس محاسبات مربوط به ضرب و تقسیم صورت گرفته و در نهایت دستورات مرتبط با جمع و تفریق بر روی دیتای مد نظر اِعمال می‌شوند.

حال با توجه به آنچه در نکتۀ بالا بدان اشاره کردیم، می‌توان گفت که نتیجۀ حاصل از اِعمال اپراتورهای ریاضیاتی روی داده‌های مد نظر برابر با عدد 26 بوده و در متغیر x ذخیره می‌شود. به علاوه، چنانچه بخواهیم تا اولویت بالاتری به اپراتور مورد نظر خود بدهیم به طوری که مفسر جاوا در ابتدا آن را روی عملوندهای متناظرش (مقادیر مربوط به سمت چپ و راست عملگر مربوطه) اِعمال کند، کافی است تا اعداد مد نظر را به همراه عملگر متناظرشان داخل علائم () قرار دهیم. برای مثال، در کد فوق قصد داریم تا در ابتدا اعداد 2 و 6 با یکدیگر جمع شده سپس حاصل‌جمع آن‌ها در مقدار ذخیره‌شده در متغیر y معادل با عدد 10 ضرب شود که برای منظور دو عدد 2 و 6 را به صورت زیر داخل علامت پرانتز قرار می‌دهیم:

int x;
int y = 10;
x = y * (2 + 6);

در دستور فوق، ابتدا عملیات ریاضیاتی داخل پرانتز اجرا شده و نتیجه حاصل در مقدار منتسب به متغیر y ضرب می‌شود که در نهایت مقدار به دست آمده معادل عدد 80 به متغیر x اختصاص می‌یابد.



بهزاد مرادی

لیست نظرات
کاربر میهمان
دیدگاه شما چیست؟
کاربر میهمان
s.a
s.a
۱۳۹۶/۰۵/۰۷
با سلام و تشکر از آموزش های خوبتان
درباره هشداری که انتهای این آموزش نوشتید میشه بیشتر توضیح بدین؟
من این کد را نوشته و نتیجه درست گرفتم:
int a=12;
double b=10.8;
System.out.print(a+b);
خروجی 22.8 درست بود
کاربر میهمان
ToOfanمن یک کاربر مهمان هستم
۱۳۹۵/۰۶/۰۳
بسیار عای. واقعا اولین جاییه که دیدم اموزشش قابل فهمیدن برای مبتدی هاست. ممنون از زحماتتون
علی
علی
۱۳۹۵/۰۴/۰۴
آقا سینا سلام ، ما الان با این سرفصل ها داریم java SE رو یاد میگیریم دیگه درسته ؟
برای java EE باید چیکار بکنیم؟
کاربر میهمان
mahdiمن یک کاربر مهمان هستم
۱۳۹۵/۰۲/۲۱
سلام
علامت % دقیقا کارش چیه؟
خواستم بفهمم نفهمیدم فک کردم مث تقسیمه
مثلا نوشتم:
int x=20,y=10
x=x%y
چرا جوابش شد صفر !
hamid_r_9750
hamid_r_9750
۱۳۹۵/۰۲/۱۸
ببخشید برای علامت توان ctrl+6 باید زده بشه؟با توان که میذارم جواب درستو نشون نمیده.یعنی توان داخل int جواب نمیده؟
javad
javad
۱۳۹۵/۰۱/۲۵
شما بهترینید;
کاربر میهمان
DDمن یک کاربر مهمان هستم
۱۳۹۴/۱۱/۱۳
روش توضیح دادن مطالب بسیار عالی هست .
خیلی با حوصله توضیح داده شده واقعا عالیه
کاربر میهمان
معینمن یک کاربر مهمان هستم
۱۳۹۴/۰۹/۱۷
واقعا مفید وکاربردی توضیح دادید و مطالب هم کاملا قابل فهم عموم هستند ممنونم
کاربر میهمان
تی تیمن یک کاربر مهمان هستم
۱۳۹۴/۰۹/۱۰
خیلی خیلی ساده و روان توضیح میدید....تا این جلسه که گام به گام با شما پیش اومدم خیلی خوب یاد گرفتم زبان برنامه نویسی جاوا رو....ممنون از دقت و مطالب کاملتون...
کاربر میهمان
علیمن یک کاربر مهمان هستم
۱۳۹۴/۰۸/۲۹
از شما بسیار متشکرم