سبد (0)

عبارات if و if else تو در تو در جاوا

این امکان وجود دارد که در داخل دستور if یا در داخل دستور else، هر تعداد دستور دیگر که نیاز باشد، قرار دهیم؛ حتی می توانیم در داخل هریک از آنها، یک  یا چند دستور if و else دیگر قرار دهیم. به یک ساختار if که در داخل یک ساختار if دیگر قرار گرفته باشد، دستور if تو در تو(nested if statement) گفته می شود. دستورات if تو در تو وقتی به کار می روند که بخواهیم قبل از انجام یک کار، دو شرط را مورد بررسی قرار دهیم. به عنوان مثال، فرض کنید در شهر هستید، و  آن طرف شهر یک کتاب فروشی وجود دارد که از طریق سایت خود، اقدام به فروش کتاب و ارسال از طریق پیک موتوری می کند. و شما تصمیم می گیرید که اگر در طی یک مدت مشخص، حداقل سه کتاب جمعاً به قیمت 1000 دلار(یا بیشتر) خرید کردید، و پیک موتوری فروشگاه، به موقع آنها را به شما تحویل داد، 50 دلار به پیک موتوری جایزه بدهید.در تصویر 5.10 منطق و کدهای حل این مسئله نشان داده شده است. 

(تصویر 5.10)

همان طور که در کدهای تصویر 5.10 مشاهده می کنید، تنها پس از عبارت ;bonus = SALES_BONUS سمی کالن قرار داده گرفته است. در این کدها، ابتدا شرط itemsSold >= MIN_ITEMS بررسی می شود؛ و تنها اگر ارزش آن true باشد، آنگاه شرط totalValue >= MIN_VALUE که در دستور if دوم قرار دارد، بررسی می شود. و اگر ارزش این شرط true باشد، دستور انتساب مربوط به متغیر جایزه یعنی bonus اجرا می شود و پس از آن دستورهای if به پایان می رسند. 


وقتی که از دستورهای if تو در تو استفاده می کنیم، باید به مکان قرارگیری elseها توجه کنیم. به عنوان مثال، فرض کنید که می خواهیم برای سطوح متفاوت خرید کتاب، جایزه های مختلفی را تعیین کنیم و به پیک موتوری بدهیم. به تصویر 5.11 توجه کنید. می خواهیم که اگر فروشنده حداقل سه کتاب به ما نفروشد، به پیک موتوری 10 دلار جایزه دهیم.  و اگر فروشنده حداقل سه کتاب به ما فروخت که قیمت آنها جمعا از 1000 دلار کمتر بود، 25 دلار به پیک موتوری جایزه دهیم. و اگر فروشنده حداقل سه کتاب به ما فروخت که جمع قیمت آنها حداقل 1000 دلار بود، به پیک موتوری 50 دلار جایزه بدهیم.

(تصویر 5.11)

همان طور که تصویر 5.11 نشان می دهد،  وقتی که یک دستور if به دنبال یک دستور if دیگر می آید، اولین else به آخرین if مرتبط می شود. در تصویر بالا، یک دستور if else کاملا در داخل بخش if از دستور if else بیرونی قرار گرفته است. در تصویر 5.11 برای کدها یک تو رفتگی وجود دارد؛ این تو رفتگی به ما امکان می دهد تا نشان دهیم که کدام if به کدام else ربط دارد. به خاطر داشته باشید که کامپایلر، تو رفتگی ها را به حساب نمی آورد، ولی این تو رفتگی ها، به خواننده کمک می کند تا منطق برنامه را راحت تر بفهمد. 

تمامی محصولات و خدمات این وبسایت، حسب مورد دارای مجوزهای لازم از مراجع مربوطه می‌باشند و فعالیت‌های این سایت تابع قوانین و مقررات جمهوری اسلامی ایران است.
logo-samandehi مجوز نشر دیجیتال از وزرات فرهنگ و ارشاد اسلامی پرداخت آنلاین -  بانک ملت معرفی بیاموز در شبکه سه