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


پس از آشنایی با کلاس String در زبان برنامه نویسی جاوا، اکنون می توانیم با استفاده از Operator ها یا همان اعمال ریاضیاتی مثل جمع و تفریق و غیره مقادیر متغیرهای متفاوتی را در تعامل با یکدیگر قرار دهیم. فرض کنیم که ما یک متغیر از جنس int تحت عنوان studentNumber داریم. مقدار اختصاص داده شده به متغیر ما 121 می باشد:

int studentNumber = 121;

حال اگر بخواهیم عددی مثل 10 را به مقدار متغیر studentNumber که معادل با 121 است اضافه کنیم به این صورت عمل می کنیم:

int studentNumber = 121;
studentNumber = studentNumber + 10;

روش دیگری که از آن طریق می توان 10 واحد به 121 اضافه کرد به صورت زیر است:

int studentNumber = 121;
studentNumber +=10;

در این صورت عدد 10 به مقدار متغیر که 121 است اضافه شده، حال از این پس مقدار متغیر studentNumber عدد 131 خواهد بود. چنان چه بخواهیم عدد 10 را از مقدار متغیرمان کم کنیم به صورت زیر عمل می کنیم:

int studentNumber = 121;
studentNumber = studentNumber - 10;

روش دیگری که از آن طریق می توان 10 واحد از 121 کم کرد به صورت زیر است:

int studentNumber = 121;
studentNumber -=10;

حال مقدار نهایی متغیر studentNumber عدد 111 خواهد بود. چنانچه بخواهیم مقدار متغیر studentNumber را در عددی ضرب کنیم به صورت زیر عمل می کنیم (برای تایپ کردن علامت ستاره، از ترکیب کلیدهای Shift و عدد 7 کیبورد استفاده می کنیم):

int studentNumber = 121;
studentNumber = studentNumber * 10;

روش دیگری که از آن طریق می توان 10 را در 121 ضرب کرد به صورت زیر است:

int studentNumber = 121;
studentNumber *=10;

در این صورت نتیجه نهایی 1210 خواهد بود. به عبارت دیگر از این پس در هر کجای برنامه که ما متغیر studentNumber را مورد استفاده قرار دهیم عدد 1210 مبنای محاسبه خواهد بود. چنانچه بخواهیم مقدار متغیرمان را بر عددی تقسیم کنیم به شکل زیر عمل خواهیم کرد:

int studentNumber = 121;
studentNumber = studentNumber / 10;

لازم به ذکر است که علامت / یا اسلش نمی بایست با علامت \ یا بک اسلش اشتباه گرفته شود. روش دیگری که از آن طریق می توان 121 را بر 10 تقسیم کرد به صورت زیر است:

int studentNumber = 121;
studentNumber /=10;

که در این صورت مقدار متغیر ما که 121 است بر عدد 10 تقسیم خواهد شد و عدد 12.1 به دست خواهد آمد (توجه داشته باشیم که در اینجا جاوا عدد 12 را به ما نشان خواهد داد چرا که جنس متغیر studentNumber از نوع int است و نمی تواند مقدار اعشاری را در خود ذخیره کند.)

آشنایی با مفاهیم Incrementing و Decrementing در زبان جاوا
مواقعی برای ما پیش می آید که تمایل داریم مقدار متغیر خود را به میزان یک عدد بیشتر افزایش یا کاهش دهیم که در این صورت بایستی اصطلاحاتی همچون Incrementing و Decrementing را مورد استفاده قرار دهیم. معنای لغوی این واژگان به ترتیب افزایش دادن و کاهش دادن است. به طور مثال چنانچه بخواهیم مقدار عددی متغیر studentNumber را به میزان یک واحد افزایش دهیم، به صورت زیر عمل می کنیم:

int studentNumber = 121;
studentNumber++;

حال مقدار عددی متغیر ما عدد 122 خواهد بود. به همین منوال می توانیم یک عدد نیز از مقدار متغیر خود به صورت زیر کم نماییم:

int studentNumber = 121;
studentNumber--;

اکنون مقدار نهایی متغیر studentNumber عدد 120 است. در مورد Incrementing و Decrementing نکته مهمی را همواره می بایست مد نظر قرار دهیم و آن هم این که چنانچه علامت های + و – قبل از نام متغیر قرار بگیرند (مثلاً studentNumber++) اصطلاحاً Pre-incrementing نامیده می شوند و چنانچه پس از نام متغیر قرار بگیرند (مثلاً  ++studentNumber) اصطلاحا Post-incrementing نامیده می شوند (در مورد علامت -– به ترتیب Pre-decrementing و Post-decrementing نامیده می شوند.) تفاوتی که مابین Pre و Post وجود دارد از آنجا ناشی می شود که در مورد Pre یک واحد به مقدار متغیر قبل از نمایش دادن آن اضافه می شود. به عبارت دیگر:

class Test {
    public static void main(String[] args) {
        int studentNumber = 121;
        System.out.println(++studentNumber);
    }
}

در واقع قبل از آن که مقدار متغیر ما در بخش کنسول نمایش داده شود، یک واحد به آن اضافه می شود و عدد 122 نمایش داده خواهد شد. حال اگر علامت ++ را بعد از نام متغیر قرار دهیم، مقدار یک واحد به مقدار متغیر ما اضافه خواهد شد اما پس از آن که برنامه یک بار اجرا شد. در واقع کد زیر

class Test {
    public static void main(String[] args) {
        int studentNumber = 121;
        System.out.println(studentNumber++);
    }
}

یک واحد به متغیر studentNumber پس از آنکه برنامه اجرا شد اضافه می کند که در این صورت ما در بخش کنسول همان عدد 121 را مشاهده خواهیم کرد چرا که برنامه اجرا می شود، مقدار 121 نمایش داده می شود، سپس یک واحد به آن اضافه می شود و تبدیل به 122 می شود. هم اکنون اگر بخواهیم برنامه خود را تست کنیم که ببینیم آیا یک واحد اضافه شده است یا خیر یک دستور دیگر به کد خود به صورت زیر اضافه می کنیم:

class Test {
    public static void main(String[] args) {
    int studentNumber = 121;
    System.out.println(studentNumber++);
    System.out.println(studentNumber);
    }
}

پس از آن که یک واحد در دستور اول به مقدار متغیر ما اضافه شد، پس از فراخوانی مجدد متغیر مقدار جدید آن که 122 است در بخش کنسول نمایش داده خواهد شد.

اولویت اپراتورها در زبان برنامه نویسی جاوا
زمان هایی در برنامه نویسی برای ما اتفاق می افتد که نیاز داریم بیش از یک عمل ریاضیاتی را در کد خود اعمال کنیم که در این صورت دانستن این نکته که جاوا اول کدام عمل اصلی را محاسبه خواهد کرد از اهمیت بسزایی برخوردار خواهد بود. فرض کنیم که دو متغیر از جنس int به نام های x و y داریم که متغیر x دارای هیچ داده ای نمی باشد اما متغیر y دارای مقدار 10 است:

int x;
int y = 10;

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

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

نتیجه متغیر x هم می تواند عدد 26 و هم 80 باشد بسته به این که اول عمل ضرب انجام شود یا عمل جمع. در زبان برنامه نویسی جاوا اعمال Incrementing و Decrementing اول رخ می دهند، سپس اعمال ضرب و تقسیم صورت گرفته و در نهایت اعمال جمع و تفریق اعمال می شوند. حال با دانستن این قوانین می توان گفت که نتیجه متغیر x در مثال فوق 26 خواهد بود.

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

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

حال نتیجه ای که به دست خواهد آمد عدد 80 خواهد بود.

پس از آشنایی با انواع متغیرها در آموزش پیشین و همچنین آشنایی با اپراتورها در این جلسه، خواهیم توانست مهارت کدنویسی خود را یک پله ارتقاء داده و برنامه هایی کمی پیچیده تر بنویسیم. در قسمت آموزشی آتی خواهیم دید که چگونه با استفاده از همین اصول ابتدایی اپراتور ها می توان پروژه ای طراحی کرد که وزن ما را روی دیگر سیارات منظومه شمسی مثل مشتری و زحل محاسبه کند.

لیست نظرات
کاربر میهمان
دیدگاه شما چیست؟
کاربر میهمان
s.a
s.a
۱۳۹۶/۰۵/۰۷
با سلام و تشکر از آموزش های خوبتان
درباره هشداری که انتهای این آموزش نوشتید میشه بیشتر توضیح بدین؟
من این کد را نوشته و نتیجه درست گرفتم:
int a=12;
double b=10.8;
System.out.print(a+b);
خروجی 22.8 درست بود
کاربر میهمان
کاربر میهمان
۱۳۹۵/۱۱/۲۶
با سلام و خسته نباشید.لطفا اصلاح کنید:برای تایپ کردن علامت ستاره * ، از ترکیب کلیدهای Shift و عدد 8 کیبورد استفاده می کنیم.با تشکر از سکان اکادمی
کاربر میهمان
کاربر میهمان
۱۳۹۵/۰۶/۰۳
بسیار عای. واقعا اولین جاییه که دیدم اموزشش قابل فهمیدن برای مبتدی هاست. ممنون از زحماتتون
علی
علی
۱۳۹۵/۰۴/۰۴
آقا سینا سلام ، ما الان با این سرفصل ها داریم java SE رو یاد میگیریم دیگه درسته ؟
برای java EE باید چیکار بکنیم؟
Sina Deuxshiri
Sina Deuxshiri
۱۳۹۵/۰۴/۰۴
سلام.بله این دوره برای JavaSE هست. اگر آخرین پادکست و گوش کرده باشین (جناب علی اکبری)، در سایت جاوا کاپ یک نقشه‌ی راهی که باید طی کنید و در سایتشون مشخص کردن که خیلی خوبه. یعنی دقیقا مطالبی که باید بلد باشین و نوشتن و منبع هم معرفی کردن. یه سری به سایت بزنید و منابعشو نگاه کنید (البته بیشتر منابع انگلیسیه). در کل برای شروع جاوا EE باید از JSP و سرولت شروع کنی و بعد برید سراغ مباحث دیگه.

در پاسخ به

Saeid Hadi
Saeid Hadi
۱۳۹۵/۰۳/۲۶
سلام و خسته نباشید
کارایی مابقی اپراتورها و به طور کلی در هر درس چیزهای مربوط که در همون آموزش ، آموزش داده نمیشه رو تو درس های آتی داده میشه یا باید بریم خودمون از منابع دیگه مطالعه کنیم؟
ممنون
Sina Deuxshiri
Sina Deuxshiri
۱۳۹۵/۰۳/۲۶
سلام. در همه‌ی آموزش‌ها تمام مطالب گفته نمیشه. در اینجا هم به همین شکل است، یعنی مطالب اصلی گفته میشه، بقیش به عهده‌ی خواننده‌ست.

در پاسخ به

Saeid Hadi
Saeid Hadi
۱۳۹۵/۰۳/۲۷
ممنون
لطفا یک منبع معرفی کنید.

در پاسخ به

Sina Deuxshiri
Sina Deuxshiri
۱۳۹۵/۰۳/۲۷
سلام. من همیشه به همه کتاب دایتل و پیشنهاد می‌کنم. هم تقریبا تمام مطالب و گفته و هم اینکه مثال‌های بسیار زیادی داره. ترجمه فارسی این کتاب هم هست، البته باید خریداری کنید، فک نکنم نسخه فارسیش در اینترنت باشه.

در پاسخ به

کاربر میهمان
کاربر میهمان
۱۳۹۵/۰۲/۲۱
سلام
علامت % دقیقا کارش چیه؟
خواستم بفهمم نفهمیدم فک کردم مث تقسیمه
مثلا نوشتم:
int x=20,y=10
x=x%y
چرا جوابش شد صفر !
Sina Deuxshiri
Sina Deuxshiri
۱۳۹۵/۰۲/۲۲
سلام. باقی مانده تقسیم و بر می‌گردونه.

در پاسخ به

hamid_r_9750
hamid_r_9750
۱۳۹۵/۰۲/۱۸
ببخشید برای علامت توان ctrl+6 باید زده بشه؟با توان که میذارم جواب درستو نشون نمیده.یعنی توان داخل int جواب نمیده؟
Sina Deuxshiri
Sina Deuxshiri
۱۳۹۵/۰۲/۱۹
سلام. نه. باید از متد pow استفاده کنید.

در پاسخ به

javad
javad
۱۳۹۵/۰۱/۲۵
شما بهترینید;
کاربر میهمان
کاربر میهمان
۱۳۹۴/۱۲/۲۷
سلام ، ممنونم آموزش هاتون واقعا عالی هستن ، اما توی یه جمله نوشتین که : "لازم به ذکر است که علامت / یا اسلش نمی بایست با علامت \ یا بک اشلش اشتباه گرفته شود."
شما اشتباها نوشتید بک اشلش! و جای "س" ، "ش" گذاشتید... تصحیح کنید...ممنونم!
ادمین سایت
ادمین سایت
۱۳۹۴/۱۲/۲۷
با تشکر از تذکر شما
اصلاح گردید

در پاسخ به

Mahmood
Mahmood
۱۳۹۵/۰۲/۱۱
واقعا بخاطر آموزش عالیتون مجدد تشکر میکنم
فقط ن در کلمه همچنین فراموش شده تایپ بشه لطفا اصلاح کنید ( خط اول پایین کادر هشدار)

در پاسخ به

ادمین سایت
ادمین سایت
۱۳۹۵/۰۲/۱۱
با تشکر از تذکر شما
اصلاح گردید.

ارادتمند
تیم سکان آکادمی

در پاسخ به

کاربر میهمان
کاربر میهمان
۱۳۹۴/۱۱/۱۳
روش توضیح دادن مطالب بسیار عالی هست .
خیلی با حوصله توضیح داده شده واقعا عالیه
کاربر میهمان
کاربر میهمان
۱۳۹۴/۰۹/۱۷
واقعا مفید وکاربردی توضیح دادید و مطالب هم کاملا قابل فهم عموم هستند ممنونم
کاربر میهمان
کاربر میهمان
۱۳۹۴/۰۹/۱۰
خیلی خیلی ساده و روان توضیح میدید....تا این جلسه که گام به گام با شما پیش اومدم خیلی خوب یاد گرفتم زبان برنامه نویسی جاوا رو....ممنون از دقت و مطالب کاملتون...
کاربر میهمان
کاربر میهمان
۱۳۹۴/۰۸/۲۹
از شما بسیار متشکرم