درس ۱۴: حلقه‌ها و تکرار

یادگیری حلقه‌های JavaScript برای تکرار عملیات

درس ۱۴ از ۲۰
پیشرفت درس

حلقه‌ها چیستند؟

حلقه‌ها (Loops) ابزارهای قدرتمندی در JavaScript هستند که به شما امکان تکرار یک بلوک کد را چندین بار می‌دهند. به جای نوشتن کد تکراری، می‌توانید از حلقه‌ها استفاده کنید تا کد خود را کوتاه‌تر و کارآمدتر کنید.

کاربردهای حلقه‌ها:

  • پردازش آرایه‌ها و لیست‌ها
  • تولید محتوای تکراری
  • محاسبات ریاضی پیچیده
  • جستجو در داده‌ها
  • اعتبارسنجی ورودی‌ها

حلقه for

حلقه for رایج‌ترین نوع حلقه در JavaScript است. این حلقه زمانی استفاده می‌شود که تعداد تکرارها از قبل مشخص باشد.

ساختار حلقه for:

for (مقداردهی اولیه; شرط; به‌روزرسانی) {
    // کد قابل تکرار
}

مثال عملی:

تمرین عملی: حلقه‌های مختلف

در ادامه، انواع مختلف حلقه‌ها را مشاهده و تست کنید:

ویرایشگر کد خط 1، ستون 1
نمایش زنده

انواع حلقه‌ها در JavaScript

۱. حلقه for

برای تکرار با تعداد مشخص استفاده می‌شود:

for (let i = 0; i < 5; i++) {
    console.log("تکرار شماره: " + i);
}

۲. حلقه while

تا زمانی که شرط برقرار باشد، تکرار می‌شود:

let i = 0;
while (i < 5) {
    console.log("شمارش: " + i);
    i++;
}

۳. حلقه do-while

حداقل یک بار اجرا می‌شود، سپس شرط بررسی می‌شود:

let i = 0;
do {
    console.log("اجرا شد: " + i);
    i++;
} while (i < 3);

۴. حلقه for...of

برای پیمایش آرایه‌ها و آبجکت‌های قابل تکرار:

const fruits = ['سیب', 'موز', 'پرتقال'];
for (const fruit of fruits) {
    console.log(fruit);
}

۵. حلقه for...in

برای پیمایش ویژگی‌های آبجکت‌ها:

const person = {name: 'علی', age: 25, city: 'تهران'};
for (const key in person) {
    console.log(key + ': ' + person[key]);
}

کنترل جریان حلقه

دستور break

برای خروج زودهنگام از حلقه:

for (let i = 0; i < 10; i++) {
    if (i === 5) {
        break; // خروج از حلقه
    }
    console.log(i);
}

دستور continue

برای رد کردن تکرار فعلی و ادامه به تکرار بعدی:

for (let i = 0; i < 10; i++) {
    if (i % 2 === 0) {
        continue; // رد کردن اعداد زوج
    }
    console.log(i); // فقط اعداد فرد چاپ می‌شوند
}

مثال‌های کاربردی

محاسبه فاکتوریل

function factorial(n) {
    let result = 1;
    for (let i = 1; i <= n; i++) {
                        result *= i;
    }
    return result;
}

console.log(factorial(5)); // 120

جستجو در آرایه

function findInArray(array, target) {
    for (let i = 0; i < array.length; i++) {
        if (array[i] === target) {
            return i; // ایندکس عنصر پیدا شده
        }
    }
    return -1; // عنصر پیدا نشد
}

const numbers = [10, 20, 30, 40, 50];
console.log(findInArray(numbers, 30)); // 2

تولید جدول ضرب

function multiplicationTable(n) {
    for (let i = 1; i <= 10; i++) {
        console.log(`${n} × ${i} = ${n * i}`);
    }
}

multiplicationTable(7);

نکات مهم و بهترین شیوه‌ها

⚠️ خطر حلقه بی‌نهایت

همیشه مطمئن شوید که شرط حلقه در نهایت false می‌شود:

// اشتباه - حلقه بی‌نهایت
let i = 0;
while (i < 10) {
    console.log(i);
    // i++ فراموش شده!
}

// درست
let i = 0;
while (i < 10) {
    console.log(i);
    i++; // به‌روزرسانی متغیر
}

💡 نکات بهینه‌سازی

  • از حلقه مناسب برای هر موقعیت استفاده کنید
  • متغیرهای حلقه را در کمترین محدوده تعریف کنید
  • از break و continue برای کنترل بهتر استفاده کنید
  • برای آرایه‌ها از for...of استفاده کنید
  • برای آبجکت‌ها از for...in استفاده کنید

آزمون درس ۱۴

سوال ۱: کدام حلقه حداقل یک بار اجرا می‌شود؟

سوال ۲: کدام دستور برای خروج از حلقه استفاده می‌شود؟

سوال ۳: خروجی این کد چیست؟

for (let i = 0; i < 3; i++) {
    if (i === 1) continue;
    console.log(i);
}