فصل ۶: حلقهها (Loops) در جاوااسکریپت

یادگیری حلقهها یعنی یاد بگیری چطور کاری رو چندبار، راحت و بیدردسر تکرار کنی!
چرا حلقه؟
فرض کن میخوای یک پیام رو 10 بار توی سایت نشون بدی. نمیتونی دستنویس، 10 خط کد برای هر پیام بنویسی! اینجاست که حلقهها وارد صحنه میشن و این کار خستهکننده رو برات تکرار میکنن.
۱. حلقه for
سادهترین و پرکاربردترین حلقه.
ساختار کلی:
for (شروع; شرط ادامه; تغییر مقدار) {
// کدی که باید هربار اجرا بشه
}
مثال: ۵ بار بنویس “سلام”
for (let i = 1; i <= 5; i++) {
console.log("سلام!");
}
توضیح:
- let i = 1 → شروع شمارش از ۱
- i <= 5 → تا وقتی i کمتر مساوی ۵ هست ادامه بده
- i++ → هر بار یکی به i اضافه کن
۲. حلقه while
تا وقتی یک شرط درست باشه، اجرا میشه.
let i = 1;
while (i <= 5) {
console.log("سلام از while!");
i++;
}
فرقش با for؟
تو while باید شمارنده و تغییر اون رو جداگانه بنویسی.
۳. حلقه do…while
همیشه یکبار حداقل اجرا میشه (حتی اگه شرط واقعاً درست نباشه).
let i = 1;
do {
console.log("حداقل یکبار اجرا شد!");
i++;
} while (i <= 3);
۴. break و continue
- break: فوراً از حلقه خارج میشه.
- continue: این دور رو رد میکنه و میره سراغ مرحله بعد.
مثال با break:
for (let i = 1; i <= 10; i++) {
if (i === 5) break; // به محض رسیدن به ۵ متوقف میشه
console.log(i);
}
مثال با continue:
for (let i = 1; i <= 5; i++) {
if (i === 3) continue; // وقتی i برابر ۳ است اجرا نمیشود
console.log(i);
}
۵. حلقه for…of و for…in (آشنایی ساده)
for…of
برای تکرار روی عناصر آرایه و رشته کاربرد داره.
let fruits = ["سیب", "موز", "هندوانه"];
for (let fruit of fruits) {
console.log(fruit);
}
خروجی:
سیب
موز
هندوانه
for…in
برای تکرار روی کلیدهای یک شیء (object):
let person = {name: "علی", age: ۲۵};
for (let key in person) {
console.log(key, person[key]);
}
مثال کاربردی روزمره:
تمام اعداد زوج زیر ۱۰ را بنویسید:
for (let i = 1; i < 10; i++) {
if (i % 2 === 0) {
console.log(i);
}
}
خروجی:
2
4
6
8
تمرین سریع!
خودت امتحان کن:
- اعداد ۱ تا ۵ را با while چاپ کن.
- اسم اعضای خانواده را با for…of در کنسول نشان بده.
- با حلقه for، فقط اعداد فرد ۱ تا ۱۰ را نمایش بده.
جمعبندی
- حلقه یعنی اجرای چندباره یک دستور
- پرمصرفترینها: for، while، do…while
- break/continue، for…of، for…in هم خیلی کاربردیاند
- با حلقهها وقت و کد اضافه نمیسوزونی!