جاوا اسکریپت – کنترل حلقه
جاوااسکریپت کنترل کاملی را برای مدیریت حلقهها و عبارات switch فراهم میکند. ممکن است در برخی موارد نیاز داشته باشید که از یک حلقه خارج شوید بدون اینکه به آخر آن برسید. همچنین ممکن است در برخی موارد بخواهید قسمتی از بلوک کد خود را بگذرانید و بازگشتی از حلقه را شروع کنید.
برای مدیریت همهی این موارد، جاوااسکریپت دستورات break و continue را فراهم میکند. این دستورات برای بهصورت فوری از هر حلقه خارج شدن یا آغاز بعدی اجرای هر حلقه بهترتیب استفاده میشوند.
دستور break
دستور break که به طور خلاصه با عبارت switch معرفی شد، برای خروج زودتر از یک حلقه استفاده میشود.
نمودار
نمودار جریان یک دستور break به صورت زیر خواهد بود:
مثال
<html>
<body>
<script type = "text/javascript">
<!--
var x = 1;
document.write("وارد شدن به حلقه<br /> ");
while (x < 20) {
if (x == 5) {
break; //اجرای دستور برای خارج شدن از حلقه
}
x = x + 1;
document.write( x + "<br />");
}
document.write("خارج شدن از حلقه!<br /> ");
//-->
</script>
<p>متغیر را به مقدار مختلف تنظیم کنید و سپس امتحان کنید...</p>
</body>
</html>
وارد شدن به حلقه
2
3
4
5
خارج شدن از حلقه!
متغیر را به مقدار مختلف تنظیم کنید و سپس امتحان کنید...
دستور continue
دستور continue به اجرا کننده میگوید که فوراً شروع به اجرای گردش حلقه بعدی کند و بقیه بلوک کد را بگذراند. وقتی دستور continue برخورد میشود، جریان برنامه فوراً به عبارت بررسی حلقه منتقل میشود و اگر شرط هنوز درست باقی بماند، از حلقه بعدی شروع میشود، در غیر این صورت از حلقه خارج میشود.
مثال
<html>
<body>
<script type = "text/javascript">
<!--
var x = 1;
document.write("ورود به حلقه<br /> ");
while (x < 10) {
x = x + 1;
if (x == 5) {
continue; // از بقیه بدنه حلقه بگذر
}
document.write( x + "<br />");
}
document.write("خروج از حلقه!<br /> ");
//-->
</script>
<p>متغیر را به مقدار مختلف تنظیم کنید و سپس امتحان کنید...</p>
</body>
</html>
ورود به حلقه
2
3
4
6
7
8
9
10
خروج از حلقه!
متغیر را به مقدار مختلف تنظیم کنید و سپس امتحان کنید...
استفاده از برچسبها
از نسخهی جاوااسکریپت 1.2 به بعد، میتوان از برچسبها به همراه دستورات break و continue استفاده کرد تا جریان را با دقت بیشتر کنترل کنیم. یک برچسب به طور ساده یک شناسه است که به آن یک نقطهویرگول (:) دنبال میشود و به یک عبارت یا بلوک کد اعمال میشود. ما دو مثال متفاوت را خواهیم دید تا درک بهتری از استفاده از برچسبها با break و continue داشته باشیم.
توجه − شکست خطوط بین دستور ‘continue’ یا ‘break’ و نام برچسب مجاز نیست. همچنین، هیچ عبارت دیگری بین نام برچسب و حلقه مرتبط وجود نداشته باشد.
برای درک بهتر برچسبها، دو مثال زیر را امتحان کنید:
مثال 1
<html>
<body>
<script type = "text/javascript">
<!--
document.write("Entering the loop!<br /> ");
outerloop: // این نام برچسب است
for (var i = 0; i < 5; i++) {
document.write("Outerloop: " + i + "<br />");
innerloop:
for (var j = 0; j < 5; j++) {
if (j > 3 ) break ; // خروج از حلقهی داخلی بهطور کامل
if (i == 2) break innerloop; // همان کار را انجام بده
if (i == 4) break outerloop; // خروج از حلقهی بیرونی
document.write("Innerloop: " + j + " <br />");
}
}
document.write("Exiting the loop!<br /> ");
//-->
</script>
</body>
</html>
Entering the loop!
Outerloop: 0
Innerloop: 0
Innerloop: 1
Innerloop: 2
Innerloop: 3
Outerloop: 1
Innerloop: 0
Innerloop: 1
Innerloop: 2
Innerloop: 3
Outerloop: 2
Outerloop: 3
Innerloop: 0
Innerloop: 1
Innerloop: 2
Innerloop: 3
Outerloop: 4
Exiting the loop!
مثال 2
<html>
<body>
<script type = "text/javascript">
<!--
document.write("Entering the loop!<br /> ");
outerloop: // این نام برچسب است
for (var i = 0; i < 3; i++) {
document.write("Outerloop: " + i + "<br />");
for (var j = 0; j < 5; j++) {
if (j == 3) {
continue outerloop;
}
document.write("Innerloop: " + j + "<br />");
}
}
document.write("Exiting the loop!<br /> ");
//-->
</script>
</body>
</html>
Entering the loop!
Outerloop: 0
Innerloop: 0
Innerloop: 1
Innerloop: 2
Outerloop: 1
Innerloop: 0
Innerloop: 1
Innerloop: 2
Outerloop: 2
Innerloop: 0
Innerloop: 1
Innerloop: 2
Exiting the loop!
برای ارسال نظر لطفا ابتدا وارد حساب کاربری خود شوید. صفحه ورود و ثبت نام