درس هشتم- ادامه و خارج شدن از حلقه
درس پیشین را به انواع حلقه و نحوه کاربرد آن اختصاص دادیم. در این درس میخواهیم با پرداختن به دو فاکتور دیگر در حلقهها، مبحث حلقه را کامل کنیم. مفاهیمی که در درس پیشرو خواهیم آموخت عبارتند از: ادامه دادن حلقه و خارج شدن از حلقه.
خارج شدن از حلقه The Break Statement
پیش از این در درس دستورات شرطی قسمت switch با عبارت Break روبرو شدیم. در شرح چگونگی کاربرد switch دیدیم که وقتی میخواستیم از «بلوک» مجموعه کدهایی خارج شویم از عبارت Break استفاده کردیم. به نمونه گفته شده در درس سویچ دقت کنید:
switch (day)
{
case 0 :
x = " یکشنبه " ;
break ;
.
.
{
کدهای نوشته شده در بالا تکهای از مجموعه کدهاییست که در آن، از سویچ استفاده شده است. همانطور که میبینید در زمان درستی شرط (case 0:) عملیاتی (x = "یکشنبه") انجام شده و با استفاده از break از بلوک کدها خارج میشویم. پس یکی از کاربردهای break در سویچ است که برای خارج شدن از بلوک کدها از آن استفاده میکنیم. کاربرد دیگر break در خارج شدن از حلقه است یعنی برای خارج شدن از حلقه در زمانی که شرط برقرار شده است. در این حالت break حلقه را شکسته و پس از آن کدهای بعد از حلقه اجرا میشوند.
حلقه نوشته شده در کدهای پایین طوری ست که میبایست ده مرتبه تکرار شود اما شرطی که در داخل این حلقه گذاشته شده است از تکرار ده بار آن جلوگیری کرده و به محض برقراری شرط با استفاده از break حلقه را پایان میدهد.
<!DOCTYPE html>
<html>
<body>
<script>
for ( i = 0 ; i < 10 ; i++ )
{
if ( i == 3 ) {
break ;
}
document.write ( " شماره مورد نظر >> " + i + "<< است " + "<br/ > " ) ;
}
</script>
</body>
</html>
نمونه بالا نشان دهنده چگونگی استفاده از break در حلقه است. همانطور که در کدهای بالا پیداست در ابتدای حلقه یک شرط وجود دارد که شمارنده را برای برقراری شرط بررسی میکند و به محض برقراری شرط با استفاده از break از حلقه خارج میشود یعنی حلقه تا زمانی تکرار میشود که شرط برقرار نباشد. حلقه بالا در کل سه بار تکرار میشود زمانی که شمارنده ۰، ۱ و یا ۲ است. وقتی شمارنده به عدد ۳ میرسد، شرط برقرار میشود و کدهای داخل بلوک شرط که تنها شامل break است، اجرا میشوند، بعد از حلقه خارج شده و اجرای حلقه پایان میپذیرد.
ادامه دادن حلقه Continue Statement
حکم (اظهار) «ادامه دادن حلقه«(Continue) برای جلوگیری از اجرای (تکرار) یک دستور در داخل حلقه استفاده میشود. عبارت Continue همانند break باعث جلوگیری از تکرار حلقه میشود با این تفاوت که در break بعد از برقراری شرط بطور کامل از حلقه خارج میشود اما در Continue بعد
از برقراری شرط تنها یکبار از تکرار حلقه جلوگیری کرده (دستور بعد از شرط
اجرا نمیشود) و بعد دوباره به ابتدای حلقه برمی گردد و حلقه تکرار خود را
ادامه میدهد.
<!DOCTYPE html>
<html>
<body>
<script>
for ( i = 0 ; i < 10 ; i++ )
{
if ( i==3 )
{
continue ;
}
document.write ( " شماره مورد نظر << " + i + ">> است " + "<br>" ) ;
}
</script>
</body>
</html>
نمونه کدهای بالا شبیه به کدهایی است که در قسمت break استفاده کردیم با این تفاوت که در اینجا بجای break از عبارت Continue بهره بردهایم. اتفاقی که میافتند اینست که به محض برقراری شرط دستور بعد از آن اجرا نمیشود و حلقه دوباره ادامه پیدا میکند. در این حالت حلقه ۹ بار تکرار میشود و تنها زمانی که شرط برقرار است (i==3) دستور داخل حلقه اجرا نمیشود.
برچسب زدن به حلقهها و بلوک کدها
یکی
دیگر از قابلیتهای جاوا اسکریپت برچسب زدن به حلقهها و یا بلوک کدهای
مورد استفاده میباشد. برچسب زدن این توانایی را به ما میدهد تا در هر
زمانی که خواستیم با استفاده از نام برچسب از آنها خارج شویم.
شیوه برچسب زدن به حلقه به این شکل است که در ابتدای حلقه یک نام برای آن انتخاب کرده و بعد از آن از علامت دو نقطه «:» استفاده میکنیم:
: (نام حلقه) یا (نام بلوک کد)
}
. . .
{
در نمونه پایین ابتدا یک نام به حلقه خود اختصاص میدهیم و در ادامه برای خارج شدن از حلقه از نام آن استفاده میکنیم.
<!DOCTYPE html>
<html>
<body>
<script>
numbers :
for ( i = 0 ; i < 10 ; i++ )
{
if ( i==3 ) {
break numbers ;
}
document.write( " شماره مورد نظر << " + i + ">> است " + "<br>" ) ;
}
</script>
</body>
</html>
همانطور که در نمونه بالا میبینید ابتدا نام (numbers:) را برای حلقه خود انتخاب کردهایم و در داخل حلقه در زمان برقراری شرط با اشاره به آن (break numbers ;) از حلقه خارج شدهایم.
کدهای بالا نمونهای برای استفاده از break است، شما میتوانید از این قابلیت در Continue هم بهره ببرید تنها کافیست که کدهای بالا را تغییر داده و از Continue استفاده کنید.
نکته: از قابلیت Continue چه بدون برچسب و چه با برچسب، تنها میتوانید داخل حلقه استفاده کنید. یعنی این قابلیت تنها در داخل حلقه کاربرد دارد و برای بلوک کدها اجرا نمیشود.
نکته: از قابلیت break بدون برچسب حلقه تنها میتوانید در داخل حلقه استفاده کنید. یعنی با استفاده از برچسب شما قادر خواهید بود که از break برای خارج شدن از هر دسته کدی (بلوک کد) بهره ببرید اما بدون برچسب فقط داخل حلقه اجرا میشود.
استفاده از break همراه برچسب برای خارج شدن از بلوک کد
از break همراه
برچسب میتوان برای خارج شدن از یک بلوک کد استفاده کرد. کافیست برای بلوک
کدهای خود نامی را برگزینیم، آنگاه با اشاره به نام در هر کجا که خواستیم
از بلوک خارج میشویم. در نمونه زیر به این قابلیت پرداخته شده است.
<!DOCTYPE html>
<html>
<body>
<script>
names = [ "پیمان" , "پژمان" , "پویا" , "پیروز" ] ;
list :
{
document.write(names[0] + "<br>");
document.write(names[1] + "<br>");
document.write(names[2] + "<br>");
document.write(names[3] + "<br>");
}
</script>
</body>
</html>
در کدهای بالا ابتدا متغیری (آرایه) با نام «names» ساخته شده و مقادیری (چندین نام) در داخل آن قرار داده شده است:
names = [ "پیمان" , "پژمان" , "پویا" , "پیروز" ] ;
سپس برای بلوک کدهایی که در ادامه نوشته شده نام list: انتخاب شده است.
list :