حلقهٔ For

از ویکی‌کد
پرش به ناوبری پرش به جستجو
Main Page Tutorial
JavaScript-menu.png
موارد آموزشی
فرم‌ها در جاوا اسکریپت
اشیاء در جاوا اسکریپت
تابع در جاوا اسکریپت
HTML DOM در جاوا اسکریپت
Browser BOM در جاوا اسکریپت
AJAX در جاوا اسکریپت
JSON در جاوا اسکریپت
جی‌کوئری در برابر جاوا اسکریپت
مرجع جاوا اسکریپت

حلقه می‌تواند بلاکی از کد را چندین مرتبه اجرا کند. [۱]

حلقه ها در جاوا اسکریپت

اگرشما بخواهید که یک کد را چندین و چندین بار با مقادیر مختلف اجرا کنید، حلقه‌ها قابل استفاده هستند.

معمولاً این حالت در زمان کار با آرایه‌ها اتفاق می‌افتد:

به جای نوشتن:

1 text += cars[0] + "<br>";
2 text += cars[1] + "<br>";
3 text += cars[2] + "<br>";
4 text += cars[3] + "<br>";
5 text += cars[4] + "<br>";
6 text += cars[5] + "<br>";

شما می‌توانید بنویسید:

1 var i;
2 for (i = 0; i < cars.length; i++) {
3   text += cars[i] + "<br>";
4 }


مشاهدهٔ نتیجه


انواع مختلف حلقه

جاوا اسکریپت از انواع مختلفی از حلقه پشتیبانی می‌کند:

  • حلقه For – یک بلاک کد را چندین بار اجرا می‌کند.
  • حلقه For/in – یک حلقه در لیستی از ویژگیهای یک شی ایجاد می‌کند.
  • حلقه For/of – یک حلقه در بین مقادیر یک شی قابل پیمایش ایجاد می‌کند.
  • حلقه while – تا زمانی که شرط حلقه While برقرار باشد، بلاکی از کدها را اجرا می‌کند.
  • حلقه dowhile – تا زمانی که شرط حلقه برقرار باشد، بلاکی از کدها را اجرا می‌کند.

حلقه For

حلقه for به شیوه زیر نوشته می‌شود:

for (statement 1; statement 2; statement 3) {
  // code block to be executed
}

عبارت ۱، (یک بار) قبل از اجرای بلاک کد اجرا می‌شود.

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

عبارت ۳، هر دفعه که بلاک کد اجرا شود، اجرا می‌شود.

مثال

1 for (i = 0; i < 5; i++) {
2   text += "The number is " + i + "<br>";
3 }


مشاهدهٔ نتیجه


از مثال بالا، شما می‌توانید بفهمید که:

عبارت شماره یک شماره یک، یک متغیر را قبل از شروع حلقه مقدار دهی می‌کند (var i = 0) .

عبارت شما ۲، یک شرط را برای اجرای حلقه تعریف می‌کند. (متغیر i می‌بایست کمتر از ۵ باشد)

عبارت شماره سه یا statement شماره ۳، مقدار متغیر i را بعد از اینکه بلاک کد اجرا شد یک واحد افزایش می‌دهد (i++) .

عبارت (به انگلیسی: Statement) شماره ۱

به طور عادی، شما از عبارت شماره ۱ برای مقدار دهی اولیه متغیری که در حلقه استفاده می‌شود، استفاده می‌کنید. (i = 0)

این امر همیشه صدق نمی‌کند. عبارت شماره ۱ اختیاری است.

شما می‌توانید مقادیر زیادی (جدا شده به وسیله ویرگول (به انگلیسی: Comma)) را در عبارت شماره ۱ مقدار دهی اولیه کنید:

مثال

1 for (i = 0, len = cars.length, text = ""; i < len; i++) {
2   text += cars[i] + "<br>";
3 }


مشاهدهٔ نتیجه


و شما می‌توانید عبارت شماره ۱ را ننویسید. (درست مانند زمانی که مقادیر قبل از اینکه حلقه شروع شود مقدار دهی شده‌اند)

مثال

1 var i = 2;
2 var len = cars.length;
3 var text = "";
4 for (; i < len; i++) {
5   text += cars[i] + "<br>";
6 }


مشاهدهٔ نتیجه


عبارت (به انگلیسی: Statement) شماره ۲

اغلب عبارت شماره ۲ برای تعریف شرط متغیر مقداردهی اولیه شده حلقه، استفاده می‌شود.

این امر همیشه صدق نمی‌کند. عبارت شماره ۲ اختیاری است.

اگر عبارت شماره ۲ مقدار true را برگرداند، حلقه از نو آغاز می‌شود، اما در صورتی که مقدار false را برگرداند، حلقه به پایان خواهد رسید.

اگر شما عبارت شماره ۲ را ننویسید، شما می‌بایست از دستور break درون حلقه خود استفاده کنید. در غیر این‌صورت حلقه هیچ وقت به پایان نخواهد رسید. این امر موجب فروپاشی مرورگر شما می‌شود. می‌توانید در فصل بعدی این آموزش مطالبی را در مورد break ها بخوانید.

عبارت (به انگلیسی: Statement) شماره ۳

معمولاً عبارت شماره ۳ مقدار متغیر مقداردهی اولیه شده حلقه را افزایش می‌دهد.

این امر همیشه صدق نمی‌کند و عبارت شماره ۳ هم اختیاری است.

عبارت شماره سه می‌تواند هر کاری مانند کاهش مقدار متغیر حلقه (i--) ، افزایش مقدار متغیر حلقه (i = i + 15) ، یا هر کار دیگری را انجام دهد.

عبارت شماره ۳ را نیز می‌توان ننوشت (درست مانند زمانی که شما افزایش یا کاهش مقدار متغیر حلقه را درون خود حلقه انجام می‌دهید):

مثال

1 var i = 0;
2 var len = cars.length;
3 for (; i < len; ) {
4   text += cars[i] + "<br>";
5   i++;
6 }


مشاهدهٔ نتیجه


حلقه For/In

حلقه for/in ر جاوا اسکریپت در بین ویژگی‌های یک شی یا یک object یک حلقه ایجاد می‌کند:

مثال

1 var person = {fname:"John", lname:"Doe", age:25};
2 
3 var text = "";
4 var x;
5 for (x in person) {
6   text += person[x];
7 }


مشاهدهٔ نتیجه


حلقه for/of

حلقه for/of یک حلقه را در یک شی قابل پیمایش ایجاد می‌کند.

حلقه for/of به شما اجازه می‌دهد که در ساختار داده‌هایی که قابل پیمایش هستند مانند آرایه‌ها، داده‌های متنی، Mapها، NodeListها و … حلقه ایجاد کنید.

شیوه نوشتار حلقه for/of به صورت زیر است:

for (variable of iterable) {
  // code block to be executed
}

variable - برای هر پیمایش مقدار ویژگی بعدی به متغیر Variable مقداردهی می‌شود. Variable می‌تواند با const ، let یا var تعریف شود.

iterable - یک شی که ویژگی‌های پیمایش دارد.

ایجاد یک حلقه برای یک آرایه

مثال

1 var cars = ['BMW', 'Volvo', 'Mini'];
2 var x;
3 
4 for (x of cars) {
5   document.write(x + "<br >");
6 }


مشاهدهٔ نتیجه


ایجاد یک حلقه برای یک رشته متنی (به انگلیسی: String)

مثال

1 var txt = 'JavaScript';
2 var x;
3 
4 for (x of txt) {
5   document.write(x + "<br >");
6 }


مشاهدهٔ نتیجه


حلقه While

حلقه while و حلقه do/while در فصل بعدی توضیح داده خواهند شد.

تمرینات جاوا اسکریپت

Time2wait.svg ساخت نمونه مثال این بخش در دست اقدام است.



منابع آموزشی