سلام با قسمت سوم آموزش جاوا JAVA در خدمت شما عزیزان هستم
در قسمت قبل از آموزش تصویری برنامه نویسی جاوا با متغیرهای جاوا آشنا شدیم
حال با ادامه آموزش جاوا همراه باشید:
متغیر double می تواند اعداد خیلی بزرگ (یا کوچک) را در خود داشته باشد. حداکثر و حداقل مقادیر 17 می باشد که با 307 صفر دنبال می شود.
متغیر double برای نگهداری مقادیر ممیزی شناور نیز استفاده می شود. یک مقدار ممیزی شناور عددی مانند 8.7، 12.5، 10.1 و غیره می باشد. به عبارت دیگر این عدد ممیزی در انتها دارد. اگر سعی کنید یک مقدار ممیزی را در یک متغیر int ذخیره کنید، NetBeans زیر کد پیش فرض را خط خواهد کشید. اگر سعی کنید برنامه را اجرا کنید، کامپایلر یک پیغام خطا ارائه می دهد. اجازه بدهید با متغیرهای double کمی تمرین کنیم.
از بخش int را به double تغییر دهید. بنابراین این مورد را نیز تغییر دهید:
int first_number, second_number, answer;
به خط زیر:
double first_number, second_number, answer;
اکنون مقادیر ذخیره شده را تغییر دهید:
first_number = 10.5;
second_number = 20.8;
بقیه ی برنامه را همانطور که هست رها کنید. پنجره ی برنامه نویسی شما باید مشابه زیر باشد:
برنامه ی خود را مجددا اجرا کنید، پنجره ی خروجی باید مانند زیر باشد:
تغییر مقادیر ذخیره شده در first_number و second_number را امتحان کنید. از هر مقداری که تمایل دارید، استفاده کنید. برنامه ی خود را اجرا کرده و نتیجه را مشاهده کنید.
در بخش بعدی در مورد دو نوع متغیر دیگر جاوا فرا خواهید گرفت: short و float.
دو نوع متغیر دیگری که می توانید استفاده کنید short و float می باشند. متغیر short برای ذخیره ی اعداد کوچکتر استفاده می شود و دامنه ی آن بین منفی 32768 و مثبت 32767 می باشد. به جای استفاده از int در کد خود مانند صفحات قبل، می توانستیم از متغیر short استفاده کنیم. اگر مطمئن هستید که متغیری را که مخواهید ذخیره کنید، بیشتر از 32767 و کمتر از -32768 نیست، باید فقط از متغیر short استفاده کنید.
متغیر double را که استفاده کردیم، می تواند اعداد ممیزی شناور واقعا بزرگ را ذخیره کند. به جای استفاهد از double، متغیر float نیز می تواند استفاده شود. هنگام ذخیره ی یک مقدار در یک متغیر float، نیاز به حرف f در انتهای آن دارید. مانند مورد زیر:
float first_number, second_number, answer;
first_number = 10.5f;
second_number = 20.8f;
بنابراین حرف f بعد از عدد اما قبل از نقطه ویرگول در انتهای خط قرار می گیرد. برای مشاهده ی تفاوت بین float و double مورد زیر را بررسی کنید.
حساب ساده ( Simple Arithmetic) با متغیرهایی که استفاده کرده اید، می توانید از نمادهای زیر نیز برای انجام محاسبت استفاده کنید: + (علامت جمع) _ (علامت منفی) *(علامت ضرب که یک ستاره است.) / (علامت تقسیم که یک اسلش رو به جلو می باشد.) این تمرین را امتحان کنید: علامت جمع را که برای اضافه کردن first_number و second_numberاستفاده می شود، حذف کنید. آن را با نمادهای بالا جایگزین کنید، ابتدا علامت منفی، سپس علامت ضرب و در نهایت علامت تقسیم. پاسخ به مورد آخر، تقسیم، باید یک عدد واقعا بزرگ به شما ارائه دهد. عددی که باید برای تقسیم ارائه دهید 0.5048076923076923 می باشد. این به این دلیل است که شما از متغیر نوع double استفاده کرده اید. به هرحال double را به float تغییر دهید. سپس حرف f را به انتهای اعداد اضافه کنید. بنابراین کد شما باید مانند زیر باشد:
وقتی که کد بالا را اجرا می کنید، اکنون پاسخ 0.5048077 می باشد. جاوا 6 عدد اول بعد از ممیز را گرفته و سپس بقیه را گرد کرده است. ( double یک عدد 64 بیتی است و float فقط 32 بیتی می باشد.)
در بخش بعد در مورد اهمیت Operator Precedence فرا خواهید گرفت.
البته که شما می توانید با بیشتر از دو عدد در جاوا محاسبه کنید. اما باید مراقب آنچه قرار است محاسبه شود، باشید. مورد زیر را به عنوان مثال در نظر بگیرید:
first_number = 100;
second_number = 75;
third_number = 25;
answer = first_number - second_number + third_number;
اگر محاسبه را از سمت چپ به راست انجام داده باشید، 75-100 می شود که پاسخ 25 است. سپس عدد سوم را که 25 است اضافه کنید. مجموع 50 خواهد بود. به هرحال اگر مد نظر شما این نباشد چطور؟ اگر تمایل داشته باشید اعداد دوم و سوم را با هم اضافه کنید و سپس مجموع را از اولین عدد کسر کنید، چطور؟ بنابراین 25+75 است که پاسخ 100 می باشد. سپس آن را از اولین عدد کسر کنید که 100 می باشد. اکنون مجموع 0 خواهد بود.
برای اطمینان از اینکه جاوا کاری را انجام می دهد که شما می خواهید، می توانید از آکولا استفاده کنید. بنابراین اولین محاسبه مانند زیر خواهد بود:
answer = (first_number - second_number) + third_number;
این پنجره ی برنامه نویسی می باشد، بنابراین می توانید آن را امتحان کنید:
محاسبه دوم نیز به این شکل می باشد:
answer = first_number - (second_number + third_number);
پنجره ی کد آن را نیز در اینجا مشاهده می کنید:
اکنون اجازه بدهید چند عمل ضرب و جمع را امتحان کنیم.
نمادهای ریاضی خود را به (که اپراتور نامیده می شوند) به جمع و ضرب تبدیل کنید:
answer = first_number + second_number * third_number;
تمام آکولادها را حذف کرده و سپس برنامه ی خود را اجرا کنید.
بدون آکولا تصور می کنید که Java از چپ به راست محاسبه را انجام می دهد. بنابراین تصور می کنید که عدد اول را به عدد دوم اضافه می کند تا 175 به دست آورد. سپس تصور می کنید که در عدد سوم ضرب می شود که 25 می باشد. بنابراین پاسخ 4375 خواهد بود. سپس برنامه را اجرا کنید. پاسخ حقیقی را که شما به دست می آورید 1975 می باشد. پس جریان چیست؟
دلیل اینکه جاوا پاسخ اشتباه ارائه می دهد Operator Precedence است. جاوا برخی از نمادهای ریاضی را مهم تر از بقیه در نظر می گیرد. این برنامه ضرب را مقدم به جمع می داند، بنابراین عملیات ضرب را قبل از جمع انجام می دهد، سپس جمع را انجام می دهد. بنابراین جاوا در حال انجام عملیات زیر می باشد:
answer = first_number + (second_number * third_number);
با قرار دادن آکولادها در جای درست مشاهده می کنید که عدد دوم در عدد سوم ضرب شده است. سپس مجموع به اولین عدد اضافه می شود. بنابراین حاصل 75 در 25 عدد 1875 می باشد. عدد 100 را اضافه کنید، که 1975می باشد.
اگر آن را به روش دیگری می خواهید، فراموش نکنید که با استفاده از آکولادها به جاوا اعلام کنید:
answer = (first_number + second_number) * third_number;
تقسیم مشابه ضرب می باشد: جاوا ابتدا تقسیم را انجام می دهد وسپس جمع و یا تفریق را. خط پاسخ خود را به شکل زیر تغییر دهید:
answer = first_number + second_number / third_number;
پاسخی که به دست می آورید 103 می باشد. اکنون چند آکولاد اضافه کنید:
answer = (first_number + second_number) / third_number;
پاسخ این بار 7 خواهد بود. بنابراین بدون آکولادها، جاوا ابتدا تقسیم را انجام می دهد و سپس 100 را به مجموع اضافه می کند – این عملکرد از چپ به راست کار نمی کند.
در اینجا لیستی از Operator Precedence را مشاهده می کنید:
ضرب و تقسیم – به طور مساوی رفتار می شوند، اما نسبت به جمع و تفریق دارای اولویت هستند. جمع و تفریق – به طور مساوی رفتار می شوند اما نسبت به ضرب و تقسیم اولویت پایین تری دارند. بنابراین اگر فکر می کنید که جاوا پاسخ اشتباه به شما می دهد، به یاد داشته باشید که Operator Precedence مهم می باشد و چند آکولاد اضافه می کند. در قسمت بعدی به چگونگی ذخیره ی مقادیر با استفاده از Java نگاهی خواهیم داشت.
پایان بخش سوم آموزش برنامه نویسی JAVA
این آموزش ادامه دارد