حلقه for

حلقه for یک بلوک کد را به تعداد دفعات دلخواه تکرار می کند.

for (expression 1; expression 2; expression 3) {
    // بلوک کد
}

 حلقه for سه عبارت دریافت می کند. که این عبارت ها با سمیکالن ( ; ) از هم جدا می شوند.

let text = "";
for (let i = 0; i < 10; i++) {
    text += `مقدار i برابر ${i} است.<br>`;
}

در نمونه کد بالا:

  • عبارت اول (expression 1): قبل از اجرا بلوک کد و فقط در اجرای اول، اجرا می شود.
  • عبارت دوم (expression 2): شرط اجرا بلوک کد، که قبل از اجرا بلوک کد و به تعداد دفعات اجرای بلوک، اجرا می شود.
  • عبارت سوم (expression 3): بعد از اجرا بلوک کد و به تعداد دفعات اجرای بلوک، اجرا می شود.

  • عبارت اول (let i = 0): یک متغیر به نام i با مقدار 0 ایجاد می کنیم. فقط قبل از اجرای اول و برای یک بار اجرا می شود.
  • عبارت دوم (i < 10): شرط اجرای بلوک قبل از اجرای بلوک بررسی می شود. مادامی که مقدار متغیر i کوچک تر از 10 باشد اجرا می شود.
  • عبارت سوم (i++): بعد از اجرای بلوک کد یک واحد به متغیر i اضافه می کنیم تا به انتهای شرط نزدیک شویم.

const students = ["Ehsan", "Amir", "Reza", "Mobin", "Dorsa", "Mahsa"];

let text = '';
let len = students.length;
for (let i = 0; i < len; i++) {
    text += `${students[i]}<br>`;
}

عبارت اول حلقه for

در حلقه for، عبارت اول فقط قبل از اجرای اول برای یکبار، اجرا می شود. مانند let i = 0

عبارت اول می تواند دارای هر مقداری باشد.مانند let i = 5

در حلقه for، عبارت اول اختیاری است.

  • می توانیم آن را خالی بگذاریم.
  • حتی می توانیم چند متغیر در آن تعریف کنیم.
let text = "";
let i = 0;
for (; i < students.length; i++) {
    text += `${students[i]}<br>`;
}

let i, len, text;
for (i = 0, len = students.length, text = ""; i < len; i++) {
    text += `${students[i]}<br>`;
}

عبارت دوم حلقه for

در حلقه for، عبارت دوم شرطی است که قبل از هر اجرا بلوک کد باید چک شود. مانند i < students.length

اگر نتیجه شرط true شود بلوک کد اجرا می شود.

در حلقه for، عبارت دوم اختیاری است و می توانیم آن را خالی بگذاریم.

خالی گذاشتن عبارت دوم به منزله true است.

نکته: اگر عبارت دوم خالی باشد، بلوک کد بی نهایت بار تکرار می شود. تکرار بی نهایت حلقه باعث کرش مرورگر می شود. برای جلوگیری از تکرار بی نهایت حتما از کلمه کلیدی break استفاده کنید. کلمه break باعث شکستن و پایان حلقه می شود.

نکته: برای اطلاعات بیشتر به آموزش break در JS مراجعه کنید.

 

let text = '';
for (let i = 0; ; i++) {
    if(i > 20) {
        break; // باعث شکستن و پایان حلقه می شود
    }
    text += `${students[i]}<br>`;
}

عبارت سوم حلقه for

در حلقه for، عبارت سوم پس از هر اجرا بلوک کد اجرا می شود. مانند i++

عبارت سوم از شرط بی نهایت، جلوگیری می کند.

در حلقه for، عبارت سوم اختیاری است.

  • می توانیم آن را خالی بگذاریم.
  • می توانیم از افزایشی (i++) یا کاهشی (i--) استفاده کنیم.
  • می توانیم افزایش یا کاهش خاص (i ** 2) (i + 10) داشته باشیم.
let text = "";
for (let i = students.length - 1; i >= 0; ) {
    text += `${students[i]}<br>`;
    i--;
}

let text = "";
for (let i = 1; i < 1000; i = i * 2) {
    text += `${i}<br>`;
}

 

نکته: توجه داشته باشید که در نمونه کد آخر نمی توانیم از i * 2 استفاده کنیم. حتما باید از i = i * 2 استفاده کنیم.

نکته: علامت کاهشی (i--) در واقع i = i - 1 است. 

نکته: علامت افزایشی (i++) در واقع i = i + 1 است. 

توسعه دهندگان
احسان اسلامی