در حال بارگذاری...

break و continue

حلقه می‌تواند تا آخر هر دور را کامل کند — مگر خودتان مسیرش را عوض کنید. گاهی جواب را پیدا کرده‌اید و می‌خواهید متوقف شوید. گاهی یک آیتم بی‌ارزش است و می‌خواهید ردش کنید، بعد ادامه دهید. break همان لحظه از حلقه بیرون می‌آید. continue به دور بعدی می‌پرد. همان حلقه‌هایی که بلدیم؛ دو کلمهٔ کوچک مسیر پرواز را عوض می‌کنند.

break چه کار می‌کند؟

نزدیک‌ترین حلقه را همین حالا تمام می‌کند. دورهای بعدی اجرا نمی‌شوند. هر چه بعد از حلقه در اسکریپت باشد هنوز اجرا می‌شود. فکر کنید: «کارم تمام شد — برو بیرون.» وقتی اولین تطبیق را می‌جویید و بقیهٔ فهرست لازم نیست، همین الگو رایج است.

break در برابر continue

📊 هدایت حلقه وسط راه

کلیدواژه اثر کی جور است
break الان از حلقه بیرون برو اولین تطبیق پیدا شد؛ دیگر صبر نکن
continue بقیهٔ این دور را رد کن، دور بعد را شروع کن یک آیتم بد را نادیده بگیر؛ پیمایش را نگه دار
هیچ‌کدام هر دور بدنه را کامل اجرا می‌کند همهٔ آیتم‌ها یکسان باید پردازش شوند
بعد از حلقه کد پایین حلقه هنوز اجرا می‌شود break فقط از حلقه خارج می‌شود، نه از کل اسکریپت

وقتی دورهای بعدی بی‌فایده‌اند break را بردارید. وقتی یک دور باید ساکت باشد ولی پیمایش باید ادامه یابد، continue را. جایشان را عوض نکنید — باگ «تقریباً درست» است و دیر پیدا می‌شود.

break حلقهٔ for را متوقف می‌کند

javascript
const nums = [2, 4, 7, 8];
let found = null;
for (let i = 0; i < nums.length; i++) {
if (nums[i] === 7) {
found = nums[i];
break;
}
}
console.log(found);

وقتی تطبیق پیدا شد متوقف شوید

حلقه اول 2 را می‌بیند، بعد 4، بعد 7. روی 7 مقدار را ذخیره می‌کند و break می‌زند. 8 دیگر اجرا نمی‌شود. found می‌شود 7. بدون break حلقه بعد از دانستن جواب هم راه می‌رفت.

continue یک دور را رد می‌کند

javascript
for (let i = 1; i <= 5; i++) {
if (i % 2 === 0) {
continue;
}
console.log(i);
}

یک دور را رد کنید و ادامه دهید

وقتی i زوج است، continue به i بعدی می‌پرد. خط console.log برای آن دورها اجرا نمی‌شود. می‌بینید 1، 3، 5. حلقه تمام نشده — فقط از عددهای زوج گذشته است.

break داخل while

javascript
let n = 1;
while (n < 20) {
if (n === 5) {
break;
}
console.log(n);
n = n + 1;
}

while را زود ترک کنید

while تا وقتی n < 20 ادامه می‌داد. وقتی n === 5 شد، break خارج می‌کند. چاپ شده: 1 تا 4. این الگو برای «تا یک قاعدهٔ توقف پیش برو، بعد برو بیرون» مناسب است — بدون تمام کردن همهٔ دورهای ممکن.

continue با for...of

javascript
const colors = ["red", "skip", "blue"];
for (const c of colors) {
if (c === "skip") {
continue;
}
console.log(c);
}

در for...of بعضی مقدارها را رد کنید

for...of همچنان روی مقدارها راه می‌رود. continue مقدار "skip" را نادیده می‌گیرد و red بعد blue را چاپ می‌کند. ایدهٔ هدایت در for و while و for...of یکی است — فقط نزدیک‌ترین حلقه.

ساخت خط با رد کردن بعضی‌ها

javascript
const parts = ["A", "x", "B", "x", "C"];
let msg = "";
for (const p of parts) {
if (p === "x") {
continue;
}
msg = msg + p;
}
console.log(msg);

موقع چسباندن فیلتر کنید

هر "x" رد می‌شود؛ حرف‌ها اضافه می‌شوند. نتیجه ABC است. همان عادت چسباندن درس‌های قبلی حلقه — continue دروازهٔ فیلتر داخل پیمایش است.

break و continue را روی صفحه نشان دهید

روی یک فهرست کوتاه راه بروید، با continue یک برچسب را رد کنید، بعد از یک نشانگر با break زود بایستید، نتیجه را در صفحه بنویسید.

پیمایش صفحه با رد و توقف

html
<!DOCTYPE html>
<html>
<head>
<title>break / continue — page</title>
</head>
<body>
<p id="out">…</p>
<script>
const items = ["a", "skip", "b", "stop", "c"];
let line = "";
for (const item of items) {
if (item === "skip") {
continue;
}
if (item === "stop") {
break;
}
line = line + item + " ";
}
let box = document.getElementById("out");
box.textContent = "kept=" + line.trim();
</script>
</body>
</html>

صفحه نشان می‌دهد kept=a b. "skip" نادیده گرفته شد؛ "stop" قبل از "c" حلقه را بست. آرایه را عوض کنید، تازه کنید، خط جدید را بخوانید. درس بعد تابع‌ها را شروع می‌کند — بلوک‌های کاری که با اسم صدا می‌زنید.

خودتان امتحان کنید

  1. در یک for روی [3, 9, 1] وقتی مقدار 9 شد break بزنید و ذخیره کنید.
  2. فقط فردهای 1 تا 6 را با continue روی زوج‌ها چاپ کنید.
  3. در یک while وقتی شمارنده به 3 رسید با break بایستید.
  4. با for...of روی ["ok", "no", "ok"] از "no" با continue بگذرید.
  5. ["1", "-", "2"] را با رد کردن "-" به 12 بچسبانید.
  6. در دموی HTML فقط آرایه را عوض کنید، تازه کنید، و kept= را بخوانید.

اشتباه‌های رایج

  • فکر کردن که continue کل حلقه را تمام می‌کند (آن کار break است)
  • گذاشتن کار بیشتر بعد از break در همان دور — هرگز اجرا نمی‌شود
  • در while زدن continue بدون به‌روز کردن شمارنده قبلش — خطر حلقهٔ بی‌پایان
  • استفاده از break وقتی فقط می‌خواستید یک آیتم را رد کنید
  • انتظار اینکه break کل اسکریپت را ترک کند — فقط نزدیک‌ترین حلقه را ترک می‌کند

خلاصه

  • break — الان از حلقه بیرون برو؛ دورهای بعدی اجرا نمی‌شوند
  • continue — بقیهٔ همین دور را رد کن؛ دور بعد را شروع کن
  • در for و while و for...of کار می‌کند
  • الگوی جستجو اغلب break می‌خواهد؛ الگوی فیلتر اغلب continue
  • بعد از break کد پایین حلقه هنوز اجرا می‌شود
  • بعدی: تابع‌ها — یک بلوک کار را نام بگذارید و صدا بزنید

🧠 دانش خود را بیازمایید

آماده شروع

دانش خود را بیازمایید

خود را با این آزمون تعاملی به چالش بکشید و ببینید موضوع را چقدر خوب درک کرده‌اید

❓
8
سوالات
🎯
70%
برای قبولی
♾️
∞
زمان
🔄
∞
تلاش‌ها

📝 دستورالعمل‌ها

  • هر سوال را با دقت بخوانید
  • بهترین پاسخ را برای هر سوال انتخاب کنید
  • می‌توانید آزمون را هر چند بار که می‌خواهید تکرار کنید
  • پیشرفت شما در بالا نمایش داده می‌شود