سلام دوستان! توی این قسمت می‌خوایم با پرکاربردترین حلقه یعنی حلقه for آشنا بشیم. ما با حلقه‌ها و کاربرد اونها توی قسمت قبل آشنا شدیم و دیدیم که چطوری می‌تونیم یک حلقه ساده رو با while درست کنیم. همچنین با کلمه‌های کلیدی break و continue هم آشنا شدیم و گفتیم که اینها توی بقیه حلقه‌ها هم کاربرد مشابهی دارن. بریم که با حلقه for آشنا بشیم 😉

 

حلقه for

این حلقه درست مثل حلقه‌های قبلی، برای تکرار کردن دستورات دلخواه ما استفاده میشه. حلقه for ساختاری به صورت زیر داره:

for (init; condition; final) {
  // code
}

به قسمت (init; condition; final) گفته میشه هد یا Head. این قسمت برای پیاده‌سازی و پیکربندی حلقه به کار میره.

به قسمت فضای بین براکت‌ها { } گفته میشه بدنه که توی اون کدهایی رو می‌نویسیم که قصد تکرار اونها رو داریم. به این قسمت به اصطلاح بلاکِ حلقه هم گفته میشه.

 

مثال شمارنده که قسمت قبل با while نوشتیم رو به یاد بیارین:

let counter = 1;
	 
while (counter <= 100) {
  console.log(counter);
 
  counter++;
}

این کد رو با for می‌تونیم به این صورت بنویسیم:

for (let counter = 1; counter <= 100; counter++) {
  console.log(counter);
}

قبل از اینکه به ادامه بپردازیم، آیا می‌تونین حدس بزنین که این مثال‌ها چه تفاوت‌هایی با هم دارن و چه جابجایی‌هایی صورت گرفته؟

 

بپردازیم به بررسی حلقه for و قسمت هد. همونطور که گفتیم این بخش برای پیاده‌سازی و پیکربندی حلقه به کار میره. هد ۳ قسمت داره که با سمی‌کالن ; از هم جدا میشن:

for (<<init;>><<condition;>><<final>>) {}

قسمت اول (init) فقط یک بار و درست قبل از اینکه حلقه شروع به کار کنه ارزیابی میشه. این قسمت معمولاً برای پیاده‌سازی شمارنده‌ها استفاده میشه.

قسمت دوم (condition) همون شرط توقف حلقه هست. این قسمت قبل از شروع هر تکرار ارزیابی میشه و تا زمانی که حاصل اون یک مقدار truthy باشه، حلقه به کار خودش ادامه میده.

قسمت سوم (final) معمولاً برای تغییر مقدار شمارنده استفاده میشه. این قسمت بعد از به پایان رسیدن هر تکرار ارزیابی میشه.

هر سه قسمت اختیاری هستن و می‌تونن خالی باشن که توی ادامه با مثال‌هایی اونها رو بررسی می‌کنیم:

let i = 0;

for (<<>>; i < 3; i++) {
  alert(i);
}

توی کد بالا، اولین قسمت رو خالی گذاشتیم و شمارنده رو خودمون بیرون از حلقه پیاده‌سازی کردیم.

 

for (let i = 0;<<>>; i++) {
  if (i === 3) {
    break;
  }
 
  alert(i);
}

توی کد بالا دومین قسمت یعنی condition رو خالی گذاشتیم. توی این شرایط، خودمون باید توی بدنه به صورت دستی شرط توقف حلقه رو بنویسیم. وگرنه یک حلقه بی‌نهایت شکل می‌گیره!

 

for (let i = 0; i < 3;<<>>) {
  alert(i);

  i++;
}

توی کد بالا سومین قسمت که معمولاً برای اضافه کردن به مقدار شمارنده استفاده میشه رو خالی گذاشتیم. با این کار خودمون باید به صورت دستی مقدار شمارنده رو افزایش بدیم. در غیر این صورت اینجا هم یک حلقه بی‌نهایت خواهیم داشت.

 

for (;;) {

}

این یک حلقه بی‌نهایت هست و باید خودمون داخل حلقه و به صورت دستی با break اون رو متوقف کنیم. کد زیر رو اجرا کنید:

for (;;) {
  const input = prompt("Enter 1");

  if (input === "1") {
    break;
  }
}

با اجرا شدن این کد، حلقه فقط زمانی متوقف میشه که توی ورودی عدد 1 وارد بشه.

توی قسمت قبل مثالی داشتیم برای نمایش دادن اعداد زوج از ۰ تا ۱۰۰ با استفاده از حلقه while. حالا این کار رو می‌خوایم با استفاده از حلقه for انجام بدیم:

for (let i = 0; i <= 100;) {
  i++;

  if (i % 2 === 1) {
    continue;
  }

  console.log(i);
}

این کار به صورت زیر هم قابل اجرا هست:

for (let i = 2; i <= 100; i += 2) {
  console.log(i);
}

 

کلمه‌های کلیدی break و continue

این دستورات توی حلقه for دقیقاً همون کاربردی رو دارن که توی قسمت قبل بررسی کردیم:

for (;;) {
  alert("You'll only see me once!");
  break;
}
for (let counter = 2; counter <= 100; counter++) {
  if (counter % 2 === 1) {
    continue;
  }

  // Check console
  console.log(counter);
}

 

خب دوستان با حلقه for هم آشنا شدیم. حلقه‌ها کاربردهای زیادی دارن که توی قسمت‌ها بعدی به کارمون میان. روزتون خوش 😉✌️

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for