حلقهٔ for
تا اینجا با if و switch مسیر را یکبار انتخاب میکردید. روی صفحهٔ واقعی اما اغلب همان کار را چندبار لازم دارید: پنج خط چاپ، چند عدد را جمع، یک فهرست کوتاه. اگر همان دستور را پنجبار کپی کنید، با اولین تغییر همهجا خراب میشود. for یک نسخه از کار را نگه میدارد و با شمارنده دورها را جلو میبرد.
حلقهٔ for چطور جلو میرود؟
تا وقتی شرط درست باشد، بدنۀ داخل { } دوباره اجرا میشود. داخل پرانتز سه تکه با نقطهویرگول مینویسید: شمارنده از کجا شروع شود، تا کی ادامه بدهد، بعد از هر دور چطور عوض شود. شرط که غلط شد، حلقه تمام است و برنامه از خط بعد از حلقه ادامه میدهد.
سه تکهٔ سرِ حلقه
📊 قطعههای روزمرهٔ for
| تکه | خواندن روزمره | کاربرد معمول |
|---|---|---|
| شروع (init) | شمارنده را از اینجا شروع کن… | let i = 0 |
| شرط (condition) | تا وقتی این درست است ادامه بده… | i < 5 |
| بهروزرسانی (update) | بعد از هر دور شمارنده را عوض کن… | i++ |
مبتدی معمولاً با عدد کوچک بهنام i میشمارد. این اسم عرف است، نه قانون — n یا step هم درست است. اگر شمارنده را هیچوقت عوض نکنید، شرط ممکن است هرگز غلط نشود و حلقه گیر کند.
for (let i = 0; i < 5; i++) {
console.log(i);
}
شمارش از شروع تا توقف
از 0 شروع میشود. تا وقتی i کمتر از 5 است همان را چاپ میکند و یکی اضافه میکند. در کنسول 0 تا 4 میبینید — پنج دور. 5 چاپ نمیشود چون شرط اول رد میشود.
یک دور را آرام بخوانید: شرط → بدنه → بهروزرسانی → دوباره شرط. بهروزرسانی داخل بدنه نیست؛ در سرِ حلقه است تا هر دور یکجور جلو برود.
for (let i = 1; i <= 3; i++) {
console.log("step " + i);
}
شروع از یک، برچسب واضحتر
اینجا شمارنده از 1 است و شرط i <= 3؛ پس سه خط step 1 تا step 3 میبینید. شروع از صفر یا یک سلیقهٔ طراحی است — فقط شرط را با همان انتخاب جور کنید.
let total = 0;
for (let i = 1; i <= 4; i++) {
total = total + i;
}
console.log(total);
جمع را دوربهدور بسازید
total از صفر شروع میشود و هر دور مقدار فعلی i را میگیرد. بعد از 1+2+3+4 میشود 10. حلقه وقتی میدرخشد که نتیجه در طول دورها رشد کند، نه اینکه فقط یک شاخهٔ یکباره باشد.
for (let i = 0; i < 8; i += 2) {
console.log(i);
}
گام را دو تا دو تا کنید
i += 2 هر دور دو تا جلو میپرد: 0، 2، 4، 6. جای بهروزرسانی فقط i++ نیست — هر تغییری که حلقه را به پایان نزدیک کند درست است.
let line = "";
for (let i = 1; i <= 3; i++) {
line = line + "n" + i + " ";
}
console.log(line);
متن را تکهتکه بچسبانید
line خالی شروع میشود و هر دور یک تکه اضافه میکند. بعد از سه دور چیزی شبیه n1 n2 n3 دارید. همین الگو بعداً برای ساختن پیام صفحه از چند بخش بهکار میآید.
نتیجه را روی صفحه ببینید
یک شمارش کوتاه اجرا کنید، پیام بسازید، بعد روی صفحه بنویسید.
<!DOCTYPE html>
<html>
<head>
<title>For — page count</title>
</head>
<body>
<p id="out">…</p>
<script>
let msg = "";
for (let i = 1; i <= 4; i++) {
msg = msg + i + " ";
}
let box = document.getElementById("out");
box.textContent = "count=" + msg.trim();
</script>
</body>
</html>
صفحه count=1 2 3 4 را نشان میدهد. حد بالا را عوض کنید، رفرش کنید، فهرست تازه را بخوانید. جلسهٔ بعد با حلقهٔ while هم تکرار میکند، ولی شکل چک شرط فرق دارد — وقتی از اول برنامهٔ شمارنده را میدانید، for ابزار تمیز میماند.
خودتان امتحان کنید
- با
i < 5یکforبنویسید که0تا4را لاگ کند. - عوضش کنید تا با
i <= 5مقادیر1تا5را لاگ کند. - مجموع
1تا5را درtotalبریزید و نتیجه را لاگ کنید. - با
i += 2اعداد زوج زیر10را چاپ کنید. - داخل حلقه رشتهای از سه برچسب (
a،b،c) بسازید. - در دموی HTML فقط حد بالا را عوض کنید، رفرش کنید، متن
count=را بخوانید.
اشتباههای رایج
- یکی کم/زیاد شمردن:
i < 5بهجایi <= 5(یا برعکس) وقتی تعداد دور مدنظرتان فرق داشت - فراموش کردن بهروزرسانی (
i++) طوری که شرط تمام نشود - کاری که یک
ifکافی است را بیخود حلقهٔ یکدوره کردن - عوض کردن متغیری غیر از آنکه در شرط است
- فرض اینکه بعد از حلقه هنوز
iبهدرد میخورد وقتی باletداخل سرِ حلقه تعریف شده (محدودهٔ بلوک)
خلاصه
forتا وقتی شرط درست است بدنه را تکرار میکند- سرِ حلقه سه تکه دارد: شروع، شرط، بهروزرسانی
- برای شمارش، جمع، و ساختن رشتهٔ کوتاه عالی است
- بهروزرسانی میتواند
i++یاi += 2یا گام واضح دیگر باشد - وقتی حلقه پیام میسازد، نتیجه را روی صفحه هم نشان دهید
- بعدی: حلقهٔ while — تکرار تا وقتی شرط برقرار است، بدون سرِ سهتکه
🧠 دانش خود را بیازمایید
دانش خود را بیازمایید
خود را با این آزمون تعاملی به چالش بکشید و ببینید موضوع را چقدر خوب درک کردهاید
📝 دستورالعملها
- هر سوال را با دقت بخوانید
- بهترین پاسخ را برای هر سوال انتخاب کنید
- میتوانید آزمون را هر چند بار که میخواهید تکرار کنید
- پیشرفت شما در بالا نمایش داده میشود