جاوااسکریپتمقدماتی۶ دقیقه مطالعهECMAScript 2023+

حلقه‌ها و تکرار

اجرای کارهای تکراری با حلقهٔ for و while و کنترل جریان تکرار با break و continue.

آنچه در این درس می‌آموزید

  • با حلقهٔ for کار تکراری را با شمارنده اجرا کنید
  • حلقهٔ while را برای تکرار تا برقراری شرط به کار ببرید
  • جریان حلقه را با break و continue کنترل کنید
نویسنده: تیم داکنامه · بازبینی: ۲۰۲۶-۱۰-۳۰
فهرست مطالب

کامپیوتر برای تکرار ساخته شده است. پردازش هزار ردیف داده، چک‌کردن هر محصول سبد خرید یا شمردن ثانیه‌های یک تایمر، همگی کارهای تکراری‌اند که نوشتنشان خط‌به‌خط بی‌معناست. «حلقه» (Loop) به برنامه می‌گوید یک بلوک از کد را چند بار اجرا کند؛ این درس دو شکل اصلی آن را یاد می‌دهد.

حلقهٔ for

حلقهٔ for برای وقتی است که تعداد تکرارها را می‌دانید. سه بخش داخل پرانتز دارد:

count.js
for (let i = 1; i <= 5; i++) {
  console.log(i);
}
خروجی کد

1 2 3 4 5

سه بخش داخل پرانتز، دقیقاً این رفتار را می‌سازند:

  1. let i = 1 — بخش آغازین؛ فقط یک بار در شروع اجرا می‌شود و شمارندهٔ حلقه را می‌سازد.
  2. i <= 5 — شرط ادامه؛ پیش از هر تکرار بررسی می‌شود و تا وقتی true است حلقه می‌چرخد.
  3. i++ — گام؛ بعد از هر تکرار اجرا می‌شود و شمارنده را یکی زیاد می‌کند. (عبارت i++ همان i = i + 1 است.)

ترتیب اجرا را با هم دنبال کنید: آغاز، شرط، بدنه، گام، شرط، بدنه، گام و همین‌طور تا شرط نادرست شود.

مثال کاربردی‌تر؛ جمع عددهای ۱ تا ۱۰:

sum.js
let sum = 0;
for (let i = 1; i <= 10; i++) {
  sum += i;
}
console.log(sum);
خروجی کد

55

عبارت sum += i شکل کوتاه sum = sum + i است: مقدار فعلی sum با i جمع و نتیجه دوباره در sum گذاشته می‌شود.

حلقهٔ while

وقتی تعداد تکرار را از قبل نمی‌دانید و فقط شرط ادامه دارید، while مناسب‌تر است؛ این حلقه تا وقتی شرطش درست است می‌چرخد:

countdown.js
let count = 3;

while (count > 0) {
  console.log(count);
  count--;
}

console.log("Liftoff!");
خروجی کد

3 2 1 Liftoff!

نکتهٔ حیاتی: چیزی داخل حلقه باید شرط را به سمت نادرست‌شدن پیش ببرد. اگر خط count-- را فراموش کنید، شرط همیشه درست می‌ماند و حلقه هرگز تمام نمی‌شود؛ به این وضعیت «حلقهٔ بی‌نهایت» (Infinite Loop) می‌گویند و برنامه را از کار می‌اندازد.

break و continue

گاهی لازم است جریان حلقه را وسط راه تغییر دهید. دو ابزار این کار را انجام می‌دهند:

break حلقه را کاملاً ترک می‌کند؛ مثل وقتی که در جست‌وجو، جواب را پیدا کرده‌اید و ادامهٔ گشتن بیهوده است:

break.js
const secret = 7;

for (let guess = 1; guess <= 10; guess++) {
  if (guess === secret) {
    console.log("Found:", guess);
    break;
  }
}
خروجی کد

Found: 7

continue فقط همان تکرار را رد می‌کند و می‌پرد به تکرار بعدی. این حلقه فقط عددهای فرد را چاپ می‌کند:

skip.js
for (let i = 1; i <= 6; i++) {
  if (i % 2 === 0) {
    continue;
  }
  console.log(i);
}
خروجی کد

1 3 5

هر بار i زوج بود، خط continue بقیهٔ بدنه را رد کرد و حلقه مستقیم به گام i++ رفت.

تمرین‌ها

تمرین

تمرین ۱ — جمع عددهای زوج

با یک حلقه، جمع همهٔ عددهای زوج از ۲ تا ۱۰۰ را حساب کنید و در پایان چاپ کنید.

js
// Write your code here
نمایش راه‌حل
js
let sum = 0;
for (let i = 2; i <= 100; i += 2) {
  sum += i;
}
console.log(sum);
خروجی کد

2550

::: :::

خلاصه

  • حلقهٔ for با سه بخش آغاز، شرط و گام، تکرار با شمارنده را می‌سازد.
  • حلقهٔ while تا برقراری شرط می‌چرخد و برای تعداد تکرار نامعلوم مناسب است.
  • break حلقه را کامل قطع می‌کند و continue فقط تکرار جاری را رد می‌کند.
  • اگر شرط حلقه هیچ‌وقت نادرست نشود، برنامه در حلقهٔ بی‌نهایت گیر می‌کند.

تکرار داریم؛ حالا وقت آن است که کدهای خود را قابل‌استفادهٔ مجدد کنیم. در درس بعدی با توابع، بلوک‌های کد را نام‌دار و قابل‌فراخوانی می‌کنیم.

منابع و ارجاع‌ها

درس‌های مرتبط