در برنامه نویسی برای اینکه از کدنویسیهای تکراری جلوگیری کنیم از حلقهها استفاده میکنیم. حلقهها به کامپایلر میگویند که یک دستور خاص را به تعداد مشخص و یا به صورت نامحدود در برنامه اجرا کند. حلقههای Do، While و For حلقههای تکرار مورد استفاده در جاوا اسکریپت (Java Scrip) هستند که ما در این مقاله به بررسی و آموزش حلقه for (به زبان ساده) میپردازیم.
فهرست عناوین مقاله
تفاوت حلقه For با حلقههای While و Do در جاوا اسکریپت
گفتیم با استفاده از حلقهها در برنامه نویسی امکان تکرار یک یا چند دستور خاص به تعداد مشخص یا به صورت نامحدود را خواهیم داشت و این کار را با دستورات For، While یا Do میتوانیم انجام دهیم. اما چرا گاهی از دستور For و گاهی از دستورات While و Do استفاده میکنیم؟ تفاوت این دستورات در این است که با دستور For میتوانیم از پیش تعیین کنیم که دستورات درون بدنهی حلقه چندبار تکرار شوند و این کار با شمارندهی حلقه که در ادامهی مقاله توضیح خواهیم داد انجام میشود.
آموزش حلقه For در جاوا اسکریپت
در شکل زیر نحو یا سینتکس (Syntax) حلقهی For در جاوا اسکریپت نمایش داده شدهاست:
همانطور که میبینید در پرانتز مقابل دستور For سه عبارت یا Expression وجود دارد که در این قسمت به بررسی هر کدام از آنها میپردازیم تا در نهایت حلقه for در جاوا اسکریپت (به زبان ساده) را به شما آموزش دهیم. شما به صورت اختیاری میتوانید مقدار هر Expression را مشخص کنید یا نکنید. توجه کنید که سِمی کالُنها یا علامت (;) در سینتکس اجباری است و در صورتی که هر کدام از آنها را ننویسید با خطا مواجه خواهید شد. بنابراین حتی اگر قصد دارید که هرکدام از Expressionهای حلقه را ننویسید سمی کالن مربوط به آن را فراموش نکنید؛ زیرا باید به کامپایلر بفهمانید که هر عبارتی که در پرانتز نوشتهاید مربوط به چندمین Expression است. به جای code to be execute هم باید تمام دستوراتی که میخواهید در حلقه تکرار شوند را بنویسید.
معرفی Expressionهای حلقهی For
هر Expression در حلقهی For نام و کاربرد خاصی دارد که در ادامه هرکدام را به صورت مختصر توضیح میدهیم:
Initialization یا مقداردهی اولیه
همانطور که در آموزش دستور حلقه for در پایتون گفتیم در پایتون نیازی نیست که شمارندهی حلقه را تعریف کنیم اما در جاوا اسکریپت باید تعریف شود. Initialization یا مقداردهی اولیه همانطور که از نام آن مشخص است برای تعریف و مقداردهی اولیهی شمارندهی حلقه استفاده میشود. میتوانیم شمارنده را قبل و بیرون از حلقه یا در همین بخش با استفاده از عبارتهای Var یا Let تعریف کنیم اما اگر در حلقه تعریف شود فقط در خود حلقه شناختهشده و قابل استفاده است. این دستور یک بار و در اولین ورود به حلقه اجرا میشود.
Condition یا شرط
این عبارت برای تعریف یک شرط استفاده میشود. خروجی این شرط یک متغیر از نوع منطقی یا Boolean است که در صورت برقراری شرط مقدار True را برمیگرداند و دستورات درون حلقه اجرا میشود و در غیر این صورت مقدار False را برمیگرداند و از حلقه خارج میشود و به اجرای کدهای بعد از حلقه میپردازد. در واقع با این عبارت شرط اتمام حلقه را مشخص میکنیم و هربار که حلقه اجرا میشود کامپایلر این شرط را بررسی میکند و اگر خروجی آن False باشد اجرای حلقه را به پایان میرساند.
final Expression یا عبارت نهایی
در صورت برقراری شرط با هربار اجرای حلقه دستورات این قسمت نیز اجرا میشود. عبارت نهایی یا Final Expression معمولا برای اضافه کردن به مقدار اولیهی شمارنده یا کاهش آن مورد استفاده قرار میگیرد. به عنوان مثال میتوان از ++i یا i= i+1 برای افزایش مقدار اولیه به اندازهی یک واحد استفاده کرد یا با استفاده از i= i-2 میتوان دو واحد از آن کم کرد. به این ترتیب از عبارت نهایی به عنوان گام افزایشی یا کاهشی استفاده میکنیم.
مزیت استفاده از حلقه های تکرار در جاوا اسکریپت
مهمترین مزیت استفاده از حلقههای تکرار مانند حلقهی For در جاوا اسکریپت و دیگر زبانهای برنامه نویسی در این است که شما را از شر کدنویسیهای طولانی و تکراری خلاص میکند. همین کاهش کدنویسیهای تکراری باعث میشود تا سایت شما کمتر با مشکلاتی مانند مشکلات بارگذاری (Load) و اجرا (Performance) روبرو شود. از شما دعوت میکنیم ویدیوی زیر را که بخشی از آموزش جامع و رایگان جاوا اسکریپت در لیموناد است تماشا کنید. مدرس در این ویدیو چگونگی جلوگیری از کدنویسیهای تکراری را به خوبی توضیح دادهاست.
در ویدیوی بالا لزوم استفاده از حلقهها را درک کردید. تصور کنید سایت شما 500 نفر یا تعداد بیشتری عضو دارد. در صورتی که امکان استفاده از حلقههای تکرار در برنامه نویسی وجود نداشت برای هر کدام از اعضا باید یک خط کد جداگانه مینوشتیم اما حلقهی For کار ما را راحت کرده است. استفاده از حلقهها یکی از راهکارهای کدنویسی تمیز (Clean Code) است. برای دسترسی به محتوای کامل و رایگان ویدیوی آموزشی بالا از طریق لینک زیر اقدام کنید.
آموزش زبان جاوا اسکریپت- مدرس مهدی هادیزاده
یک مزیت دیگر استفاده از حلقه For در جاوا اسکریپت این است که دستورات آن به صورت داینامیک (Dynamic) یا پویا است. یعنی اگر عضو جدیدی به سایت شما استفاده شود نیازی نیست که مجددا کدنویسی را انجام دهید اما اگر از حلقه For استفاده نکنید برای هر عضو جدید باید یک خط کد جدید بنویسید.
خروج از حلقه For با دستور Break
همانطور که گفتیم کامپایلر در صورتی که شرط درون حلقه برقرار نباشد از آن خارج میشود. اما در جاوا اسکریپت با استفاده از دستور Break میتوانیم در هر لحظه که بخواهیم از حلقه خارج شویم. قطعه کد زیر مثالی برای استفاده از این دستور است.
این قطعه کد بدون دستورات if و break اعداد 0 تا 20 را چاپ میکند اما با وجود این دو فرمان پس از چاپ اعداد 0 تا 9 از حلقه خارج میشود.
آموزش حلقه For تو در تو در جاوا اسکریپت
جاوا اسکریپت این امکان را برای شما فراهم میکند که از یک حلقهی For درون حلقهی دیگر استفاده کنید. به چنین حلقههایی در برنامه نویسی حلقههای تو در تو یاNested Loops میگوییم. در حلقههای تو در تو به ازای هر شمارندهی حلقهی بیرونی، حلقهی درونی تمام تکرارهای خود را انجام میدهد. برنامه چاپ ستاره یک مثال عالی برای آموزش حلقه For تو در تو در جاوا اسکریپت است که کد مربوط به آن را مشاهده میکنید:
در این مثال وقتی مقدار شمارندهی i برابر 0 قرار میگیرد، شمارندهی j تمام مقادیر 0 تا 10 را پیمایش میکند. سپس مقدار شمارندهی i به 1 تغییر کرده و شمارندهی j مجددا تمام مقادیر 0 تا 10 را پیمایش میکند و به ازای هر پیمایش یک ستاره نمایش میدهد. درواقع شمارندهی i برای نمایش هر سطر و شمارندهی j برای نمایش هر ستاره در سطرها به کار میرود. خروجی قطعه کد بالا را در تصویر زیر مشاهده میکنید:
نکته: از دستور <“/br”> برای نمایش خروجی در چند سطر استفاده میشود. به عنوان مثال در صورتی که این دستور را ننویسیم تمام ستارهها پشت سر هم و در یک خط چاپ میشوند.
برنامه چاپ مثلث با ستاره در جاوا اسکریپت
با توجه به کد زیر که درواقع همان برنامهی قبلی است و اندکی تغییرات در آن ایجاد کردهایم درک بهتری از حلقههای تو در تو به دست خواهید آورد.
تصویر زیر خروجی برنامهی بالا است و همانطور که مشاهده میکنید وقتی مقدار شمارندهی i عدد 0 باشد به ازای آن یک ستاره چاپ میشود. سپس وقتی شمارنده برابر 1 میشود به ازای آن دو ستاره را نمایش میدهد و به همین ترتیب ادامه مییابد تا شمارندهی i بزرگتر از عدد 10 شده و از حلقه خارج شود.
معرفی بهترین دورههای آموزش جاوا اسکریپت
زبانهای برنامه نویسی مانند جاوا اسکریپت دستورات و امکانات گستردهای دارد. ما در این مقاله به آموزش حلقه for در جاوا اسکریپت (به زبان ساده) پرداختیم اما برای اینکه بتوانید از تمام این امکانات استفاده کنید بهتر است این زبان را به صورت کامل و اصولی از منابع ارزشمند آموزشی یاد بگیرید. پیشنهاد ما به شما دورههای آموزشی جاوا اسکریپ در لیموناد است که از طریق لینکهای زیر به آنها دسترسی خواهید داشت. در این دورهها کار با کتابخانهها، فریم ورکها، ابزارها و سایر امکانات جاوا اسکریپت آموزش داده میشوند.
آموزش جاوا اسکریپت JavaScript – مقدماتی تا پیشرفته
آموزش پروژه های الگوریتمیک با جاوا اسکریپت
یکی از دورههای آموزشی پروژه محور و بسیار کاربردی لیموناد را از طریق لینک زیر میتوانید دانلود کنید. در این دوره پس از یادگیری مباحث پایه Java Script و طراحی پروژههای مختلف در طول فصول ابتدایی، پروژهی طراحی سامانه تست هوش با جاوا اسکریپت را به صورت گام به گام آموزش خواهید دید و با انجام این پروژه به استفاده از اکثر امکانات و ابزارهای جاوا اسکریپت مسلط خواهید شد.
آموزش پروژه محور جاوا اسکریپت- پروژهی طراحی سامانه تست هوش
همچنین برای دسترسی به تمام آموزشهای رایگان و غیر رایگان پروژه محور و موضوعی جاوا اسکریپت از طریق لینکهای زیر اقدام کنید.