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


پس از آشنایی با کلاس 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 خواهد بود.

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

لیست نظرات
کاربر میهمان
دیدگاه شما چیست؟
کاربر میهمان
عبدالحمید ارجمند
عبدالحمید ارجمندAndroid Developer - Java - عاشق گجتهای اپل و مایکــ
به نظر میاد کیبورها متفاوت بوده و یکسان نیستند زیرا اعمل shift + 7 علامت & را نشان میدهند وبلکه shift +8 است که علامت ضرب را نشان میدهد .
s.a
s.a
با سلام و تشکر از آموزش های خوبتان
درباره هشداری که انتهای این آموزش نوشتید میشه بیشتر توضیح بدین؟
من این کد را نوشته و نتیجه درست گرفتم:
int a=12;
double b=10.8;
System.out.print(a+b);
خروجی 22.8 درست بود
کاربر میهمان
MASIHمن یک کاربر مهمان هستم
با سلام و خسته نباشید.لطفا اصلاح کنید:برای تایپ کردن علامت ستاره * ، از ترکیب کلیدهای Shift و عدد 8 کیبورد استفاده می کنیم.با تشکر از سکان اکادمی
کاربر میهمان
ToOfanمن یک کاربر مهمان هستم
بسیار عای. واقعا اولین جاییه که دیدم اموزشش قابل فهمیدن برای مبتدی هاست. ممنون از زحماتتون
علی
علی
آقا سینا سلام ، ما الان با این سرفصل ها داریم java SE رو یاد میگیریم دیگه درسته ؟
برای java EE باید چیکار بکنیم؟
Saeid Hadi
Saeid Hadi
سلام و خسته نباشید
کارایی مابقی اپراتورها و به طور کلی در هر درس چیزهای مربوط که در همون آموزش ، آموزش داده نمیشه رو تو درس های آتی داده میشه یا باید بریم خودمون از منابع دیگه مطالعه کنیم؟
ممنون
کاربر میهمان
mahdiمن یک کاربر مهمان هستم
سلام
علامت % دقیقا کارش چیه؟
خواستم بفهمم نفهمیدم فک کردم مث تقسیمه
مثلا نوشتم:
int x=20,y=10
x=x%y
چرا جوابش شد صفر !
hamid_r_9750
hamid_r_9750
ببخشید برای علامت توان ctrl+6 باید زده بشه؟با توان که میذارم جواب درستو نشون نمیده.یعنی توان داخل int جواب نمیده؟
javad
javad
شما بهترینید;
کاربر میهمان
سروشمن یک کاربر مهمان هستم
سلام ، ممنونم آموزش هاتون واقعا عالی هستن ، اما توی یه جمله نوشتین که : "لازم به ذکر است که علامت / یا اسلش نمی بایست با علامت یا بک اشلش اشتباه گرفته شود."
شما اشتباها نوشتید بک اشلش! و جای "س" ، "ش" گذاشتید... تصحیح کنید...ممنونم!