برچسب زدن (Label) حلقه ها (Loop)، برای کنترل دقیقتر چندین حلقه (Loop) بر اساس break و continue ، در JavaScript
در کلیدهای آموزشی دیگر، چگونگی کنترل حلقه (Loop) را بر اساس عبارت continue ( کلید شماره 26227 ) و عبارت break ( کلید شماره 26226 ) شرح دادیم. اما در مواقعی که ما چندین حلقه (Loop) در کدهای JavaScript خود داریم، ممکن است قصد داشته باشیم که تعیین کنیم با اجرای break یا continue ، عمل مورد نظرمان بر روی کدام حلقه (Loop) اجرا شود. بنابراین باید قادر باشیم که حلقه های (Loop) مختلف موجود در بین کدها را شناسایی کنیم.
به عنوان مثال، وقتی دو حلقه تو در تو داریم و در حلقه داخلی تر، عبارت break اجرا می شود، تنها از حلقه داخلی خارج خواهیم شد (البته در آن گام از حلقه سطح بالاتر)، اما در این کلید آموزشی شرح خواهیم داد که با استفاده از برچسب ها (Label)، می توانیم تعیین کنیم که از حلقه سطح بالاتر خارج شویم (با تعیین یک برچسب برای حلقه سطح بالاتر و بعد ذکر شدن نام برچسب در بعد از عبارت break).
بنابراین راه حل زبان JavaScript برای کنترل دقیقتر چند حلقه (Loop)، به این صورت که برای هر حلقه (Loop)، یک برچسب (Label) در نظر گرفته می شود و سپس می توانیم نام برچسب (Label) را برای عبارت break یا continue ذکر کنیم تا به حلقه (Loop) مربوط به آن برچسب (Label)، اعمال شود.
در برچسب (Label) هر حلقه (Loop)، یک نام دلخواه به کار می رود و بعد از نام تعیین شده، علامت : را می نویسیم.
عبارت مربوط به برچسب (Label)، قبل از اولین خط شروع حلقه (Loop)، یعنی در خط قبل از کلمه for یا while ، نوشته خواهد شد.
به عنوان مثال :
که در آن، نام Kelidestan را برای برچسب (Label) انتخاب کرده ایم.
سپس هر زمان که بخواهیم break یا continue را اجرا نماییم، می توانیم پس از آنها، نام برچسپ (Label) مربوط به حلقه (Loop) مورد نظرمان را ذکر کنیم (در مثال بالا، Kelidestan)، تا به برنامه اعلام نماییم که break یا continue باید برای آن حلقه (Loop) خاص اجرا گردد :
برای درک بهتر این موضوع، به مثال زیر توجه کنید :
کدی شامل دو حلقه for تو در تو می نویسیم (فعلا بدون نوشتن برچسب برای حلقه ها) :
تابع document.write برای چاپ یک متن در خروجی صفحه به کار می رود. عبارت های Loop A مربوط به حلقه سطح بالاتر و عبارت های Loop B مربوط به حلقه داخلی می باشد و در ادامه هر یک از آنها، مقدار متغیرهای حلقه ها را هم ذکر کرده ایم تا به راحتی بتوانید آنها را تشخیص دهید.
دقت شود که عبارت زیر برای ایجاد کاراکتر فضای خالی (space) نوشته شده است و 4 بار تکرار آن در خروجی، باعث می شود که متن مورد نظر به اندازه 4 کاراکتر فاضلی خالی (space)، جلوتر نمایش داده شود (تا حلقه داخلی، راحت تر تشخیص داده شود) :
کد JavaScript را در یک صفحه HTML نوشته و آن را اجرا می کنیم (فعلا قصد داریم که نتیجه اجرای کامل دو حلقه را در خروجی ببینید) :
نتیجه :
اکنون برای دو حلقه for ، دو برجسب (Label) با نام های Kelidestan_Loop_A و Kelidestan_Loop_B می نویسیم و عبارت break را یک بار در حالت بدون ذکر نام برچسب و دو بار با ذکر نام آن دو برچسب، می نویسیم :
عبارت break به 3 شکل زیر اجرا شده است :
البته برای اجرای هر کدام، شرط هایی بر اساس مقدار متغیر مربوط به حلقه سطح بالاتر (متغیر ii)، تعیین شده است :
کد کامل صفحه HTML :