0

آموزش برنامه نویسی جاوا

 
hosseinb68
hosseinb68
کاربر طلایی1
تاریخ عضویت : بهمن 1389 
تعداد پست ها : 1269
محل سکونت : بوشهر

آموزش برنامه نویسی جاوا - قسمت هشتم: اپراتورها در زبان برنامه نویسی
چهارشنبه 25 دی 1392  1:36 PM

پس از آن که در دو جلسه گذشته با string ها در زبان برنامه نویسی جاوا آشنا شدیم، اکنون می توانیم با استفاده از Operator ها یا همان اعمال ریاضیاتی مثل جمع و تفریق و غیره مقادیر متغیر های متفاوتی را در تعامل با یکدیگر قرار دهیم. ادامه مطلب را از دست ندهید.

فرض کنیم که ما یک متغیر از جنس int تحت عنوان studentNumber داریم. مقدار اختصاص داده شده به متغیر ما 121 می باشد:


  1. int studentNumber = 121;

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

  1. int studentNumber = 121;
  2. studentNumber = studentNumber + 10;

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

  1. int studentNumber = 121;
  2. studentNumber +=10;
  3.  

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

  1. int studentNumber = 121;
  2. studentNumber = studentNumber - 10;

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

  1. int studentNumber = 121;
  2. studentNumber -=10;
  3.  

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

  1. int studentNumber = 121;
  2. studentNumber = studentNumber * 10;
  3.  

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

  1. int studentNumber = 121;
  2. studentNumber *=10;

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

  1. int studentNumber = 121;
  2. studentNumber = studentNumber / 10;

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

  1. int studentNumber = 121;
  2. studentNumber /=10;

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

  1. int studentNumber = 121;
  2. studentNumber++;
  3.  

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

  1. int studentNumber = 121;
  2. studentNumber--;

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

  1. class test {
  2.  
  3. public static void main(String[] args) {
  4. int studentNumber = 121;
  5.  
  6. System.out.println(++studentNumber);
  7.  
  8. }
  9. }

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

  1. class test {
  2.  
  3. public static void main(String[] args) {
  4. int studentNumber = 121;
  5.  
  6. System.out.println(studentNumber++);
  7.  
  8. }
  9. }

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

  1. class test {
  2.  
  3. public static void main(String[] args) {
  4. int studentNumber = 121;
  5.  
  6. System.out.println(studentNumber++);
  7. System.out.println(studentNumber);
  8.  
  9. }
  10. }

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

  1. int x;
  2. int y = 10;

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

  1. int x;
  2. int y = 10;
  3. x = y * 2 + 6;

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

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

حال نتیجه ای که به دست خواهد آمد عدد 80 خواهد بود. نکته ای که در اینجا می بایست حتماً به خاطر بسپاریم این است که نمی توانیم این اعمال را (ضرب، تقسیم، جمع و تفریق) مابین یک متغیر از جنس int و یک متغیر از جنس double اجرا کنیم که در این صورت Compiler در حین اجرای برنامه Error خواهد داد. پس از آشنایی با انواع متغیر ها در آموزش پیشین و همچین آشنایی با Operator ها در این جلسه، خواهیم توانست مهارت کدنویسی خود را یک پله ارتقاء داده و برنامه هایی کمی پیچیده تر بنویسیم. در قسمت آموزشی آتی خواهیم دید که چگونه با استفاده از همین اصول ابتدایی Operator ها می توان پروژه ای طراحی کرد که وزن ما را روی دیگر سیارات منظومه شمسی مثل مشتری و زحل محاسبه کند.

تشکرات از این پست
دسترسی سریع به انجمن ها