javascriptbreak and continueکنترل حلقه با break و continue در جاوااسکریپت
با break و continue در جاوااسکریپت مسیر حلقه را کنترل کنید؛ ردکردن یک ردیف، توقف کامل و تفاوت آن با return را در یک مثال جمعآوری ببینید.
مفهوم به زبان ساده
هنگام پیمایش، گاهی فقط ردیف فعلی باید کنار گذاشته شود و گاهی کل جستوجو باید پایان یابد. continue ادامهٔ بدنهٔ همین دور را رد میکند و کنترل را به مرحلهٔ بعدی حلقه میبرد. break از نزدیکترین حلقه یا switch مربوط خارج میشود. این دو دستور برای قصدهای متفاوتاند؛ انتخاب نادرست ممکن است دادههای بعدی را بیدلیل حذف یا پردازش کند.
در مثال، فقط مقدارهای مثبت پیش از رسیدن به حد توقف را جمع میکنیم. مقدار منفی با continue کنار گذاشته میشود، اما پیمایش به ۳۰ میرسد. با رسیدن به ۱۲۰، break اجرا میشود و مقدار ۴۰ دیگر بررسی نمیشود.
در حلقهٔ for معمولی، پس از continue بخش تغییر شمارنده هنوز اجرا میشود. در while، اگر تغییر وضعیت را بعد از continue گذاشته باشید، ممکن است آن خط رد شود و حلقه پایان نیابد. همچنین return اجرای تابع را پایان میدهد و جایگزین عمومی این دو نیست. داخل callback یک روش آرایه هم نمیتوان break را مانند بدنهٔ حلقه به کار برد. برای تمرین، ترتیب دادهها را عوض کنید و نتیجه را پیش از اجرا حدس بزنید؛ محل حد توقف در خروجی اثر دارد.
کجا به کار میآید؟
- کنارگذاشتن یک ردیف نامجاز بدون قطع بقیهٔ پیمایش
- پایان زودهنگام جستوجو پس از رسیدن به شرط توقف روشن
از تعریف تا یک مثال واقعی
const values = [20, -1, 30, 120, 40];
const selected = [];
let total = 0;
for (const value of values) {
if (value <= 0) continue;
if (value > 100) break;
selected.push(value);
total += value;
}
console.log(selected.join(', '));
console.log(total);
20, 30 50
این مثال چطور کار میکند؟
۲۰ پذیرفته و به مجموع اضافه میشود.
منفی یک با continue کنار گذاشته میشود؛ ۳۰ هنوز بررسی خواهد شد.
۱۲۰ شرط break را برقرار میکند و پیمایش پایان مییابد.
۴۰ به مرحلهٔ بررسی نمیرسد؛ مجموع دو مقدار پذیرفتهشده ۵۰ است.
اشتباه رایج
continue در while میتواند از خط تغییر وضعیت عبور کند؛ همهٔ مسیرهای حلقه باید امکان رسیدن به شرط پایان داشته باشند. break هم بهخودیخود از همهٔ حلقههای تو در تو خارج نمیشود.
این را به خاطر بسپارید
continue فقط دور فعلی را کوتاه میکند؛ break ساختار نزدیک مربوط را پایان میدهد.