معرفی Loops در JavaScript
یکی از مفاهیم اساسی در برنامهنویسی، حلقهها (Loops) هستند. حلقهها به شما این امکان را میدهند که مجموعهای از دستورات را چندین بار تکرار کنید، بدون اینکه نیاز به نوشتن مجدد آنها باشد. JavaScript به شما انواع مختلفی از حلقهها را ارائه میدهد که بسته به نیاز و موقعیت، میتوانید از آنها استفاده کنید. این ویژگی باعث میشود که برنامهها سادهتر، بهینهتر و قابلیت تغییر بیشتری داشته باشند. در این مقاله به بررسی انواع مختلف حلقهها در JavaScript و نحوه استفاده از آنها میپردازیم.
اهمیت حلقهها در برنامهنویسی
Loops به شما امکان میدهند که بهصورت خودکار یک مجموعه از دستورات را برای تعداد مشخصی از دفعات یا تا زمانی که یک شرط خاص برقرار است، تکرار کنید. بدون حلقهها، شما مجبور بودید برای هر تکرار یک بلوک کد را بهصورت دستی بنویسید، که این کار نه تنها وقتگیر است، بلکه نگهداری و بهروزرسانی کد را دشوارتر میکند.
به عنوان مثال، فرض کنید میخواهید عددهای ۱ تا ۱۰۰ را در کنسول چاپ کنید. بدون استفاده از حلقهها، باید ۱۰۰ خط کد بنویسید، اما با یک حلقه ساده میتوانید این کار را تنها در چند خط انجام دهید.
انواع Loops در JavaScript
در JavaScript، چند نوع حلقه وجود دارد که هر کدام کاربرد و ساختار مخصوص به خود را دارند. انواع رایج حلقهها را در ادامه میتوانید مطالعه کنید.
حلقه for
حلقه for یکی از پرکاربردترین حلقهها در JavaScript است و برای زمانی استفاده میشود که تعداد دفعات تکرار مشخص باشد. این نوع حلقه دارای سه قسمت کلیدی است:
مقداردهی اولیه (Initialization)
شرط ادامه (Condition)
بهروزرسانی (Update)
ساختار کلی حلقه for به صورت زیر است.
for (initialization; condition; update) {
// دستورات
}
initialization: متغیرهای شمارنده را مقداردهی اولیه میکند (مثلاً let i = 0).
condition: شرطی است که تا زمانی که برقرار باشد، حلقه ادامه مییابد (مثلاً i < 5).
update: در هر تکرار حلقه، بهروزرسانی متغیر انجام میشود (مثلاً i++).
for (let i = 0; i < 5; i++) {
console.log("Iteration number " + i);
}
در این مثال، حلقه از مقدار i = 0 شروع میشود و تا زمانی که i < 5 باشد، اجرا میشود. پس از هر بار اجرای حلقه، مقدار i یک واحد افزایش مییابد.
استفادههای رایج از حلقه for
پیمایش آرایهها: حلقه for بهطور گستردهای برای پیمایش و دسترسی به مقادیر آرایهها استفاده میشود. در مورد آرایهها و همچنین خلاصهای از Loops را در مقاله”آموزش JavaScript قسمت سوم” میتوانید مطالعه کنید.
let numbers = [10, 20, 30, 40];
for (let i = 0; i < numbers.length; i++) {
console.log(numbers[i]);
}
این حلقه هر عنصر آرایه را بهترتیب چاپ میکند.
ویدئوی یوتیوب
حلقه while
حلقه while زمانی استفاده میشود که تعداد دفعات تکرار مشخص نیست و اجرای حلقه تا زمانی ادامه مییابد که شرط مشخصی برقرار باشد.
ساختار کلی حلقه while به این صورت است.
while (condition) {
// دستورات
}
condition: شرطی است که تا زمانی که برقرار باشد، حلقه ادامه پیدا میکند.
let i = 0;
while (i < 5) {
console.log("Iteration number " + i);
i++;
}
در این مثال، حلقه while تا زمانی که مقدار i کمتر از ۵ باشد اجرا میشود و در هر تکرار مقدار i یک واحد افزایش مییابد.
موارد استفاده از حلقه while
حلقه while در مواردی استفاده میشود که نمیدانید دقیقاً چند بار نیاز به تکرار دارید. برای مثال، میتوانید از این حلقه برای اجرای کد تا زمانی که کاربر ورودی معتبری وارد کند استفاده کنید.
حلقه do...while
حلقه do…while مانند حلقه while عمل میکند، با این تفاوت که شرط حلقه(Loop condition) در انتهای آن بررسی میشود. بنابراین، حتی اگر شرط در اولین تکرار برقرار نباشد، بدنه حلقه حداقل یک بار اجرا خواهد شد.
ساختار کلی حلقه do…while را میتوانید در کد زیر مشاهده کنید.
do {
// دستورات
} while (condition);
let i = 0;
do {
console.log("Iteration number " + i);
i++;
} while (i < 5);
در این مثال، بدنه حلقه حداقل یک بار اجرا میشود و سپس شرط بررسی میشود.
حلقه for...in
حلقه for…in برای پیمایش ویژگیهای (properties) یک شیء در JavaScript استفاده میشود. این حلقه به شما این امکان را میدهد که به تمامی ویژگیهای یک شیء دسترسی پیدا کنید.
ساختار کلی حلقه for…in به صورت زیر است.
for (let key in object) {
// دستورات
}
let person = {name: "Ali", age: 25, city: "Tehran"};
for (let key in person) {
console.log(key + ": " + person[key]);
}
در این مثال، حلقه for…in تمامی ویژگیهای شیء person را پیمایش میکند و کلید و مقدار هر ویژگی را در کنسول نمایش میدهد.
محدودیتها و استفادههای حلقه for...in
حلقه for…in برای پیمایش ویژگیهای شیء مفید است، اما نباید برای آرایهها استفاده شود، زیرا ترتیب عناصر در آرایهها تضمین نشده است. برای آرایهها بهتر است از for یا for…of استفاده کنید.
حلقه for...of
حلقه for…of یکی از جدیدترین انواع Loops در JavaScript است و برای پیمایش آرایهها یا سایر مجموعههای قابل پیمایش (مانند Map و Set) استفاده میشود. برخلاف for…in که بر روی کلیدهای شیء کار میکند، for…of مستقیماً روی مقادیر پیمایش میکند.ساختار کلی حلقه for…of به این صورت است:
for (let value of iterable) {
// دستورات
}
مثال کاربردی این حلقه را در کد زیر بطور واضح مشاهده میکنید.
let numbers = [10, 20, 30, 40];
for (let num of numbers) {
console.log(num);
}
در این مثال، حلقه for…of هر عنصر از آرایه numbers را پیمایش کرده و در کنسول نمایش میدهد.
تفاوت بین for…in و for…of
تفاوت بین for...in و for...of
for…in: برای پیمایش ویژگیهای یک شیء استفاده میشود.
for…of: برای پیمایش مقادیر آرایهها یا مجموعههای دیگر (مثل Map، Set) استفاده میشود.
کنترل جریان در حلقهها
JavaScript دستوراتی دارد که میتوان از آنها برای کنترل جریان Loops استفاده کرد.
break
break؛ باعث خاتمه یافتن کامل حلقه میشود.
for (let i = 0; i < 10; i++) {
if (i === 5) {
break; // حلقه در اینجا متوقف میشود
}
console.log(i);
}
continue
continue؛ اجرای حلقه را متوقف کرده و به شروع تکرار بعدی میرود.
for (let i = 0; i < 10; i++) {
if (i === 5) {
continue; // از تکرار فعلی عبور میکند و به تکرار بعدی میرود
}
console.log(i);
}
Loops یکی از مفاهیم کلیدی در JavaScript هستند که به برنامهنویسان امکان میدهند تا دستورات را بهطور کارآمد و با تکرار اجرا کنند. هر نوع حلقه برای موقعیتهای خاصی مناسب است: حلقه for برای زمانی که تعداد تکرار مشخص است، حلقه while برای زمانی که شرطی باید تا مدت نامشخصی برقرار باشد، و حلقههای for…in و for…of برای پیمایش اشیاء و آرایهها. با انتخاب صحیح نوع حلقه و استفاده از دستورات کنترلی مانند break و continue، میتوانید کدهایی بهینه و قابل نگهداری بنویسید. خالی از لطف نیست که برای تمرین بیشتر به سایت محبوب W3schools مراجعه کنید.