نحوه راه اندازی گوشی های هوشمند و رایانه های شخصی. پرتال اطلاعاتی

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

هدف اصلی جاوا اسکریپت اجرای مکرر یک قطعه کد خاص، بارها و بارها است. بسیار شبیه به یک حلقه for با یک تفاوت مهم است. اجازه دهید کمی از وقت شما را برای توضیح تفاوت بین این دو نوع چرخه صرف کنم.

تفاوت بین حلقه‌های while و for چیست؟

تفاوت بین این حلقه ها این است که چگونه اجرای یک قطعه کد را متوقف می کنند.

حلقه for مجموعه ای از تکرارها را اجرا می کند. ما دقیقا می دانیم که حلقه چند بار قطعه کد موجود در بدنه خود را اجرا می کند.

در این مدت، همه چیز متفاوت اتفاق می افتد. یک حلقه while در جاوا اسکریپت تا زمانی اجرا می شود که یک شرط خاص درست باشد. هنگامی که شرط به false ارزیابی شد، سپس حلقه while خاتمه می یابد.

دلیل متفاوت بودن این حلقه‌ها این است که لزوماً نمی‌توانیم از قبل بدانیم که یک شرط معین دیگر درست نیست. بنابراین، نمی‌توانیم پیش‌بینی کنیم که چند تکرار حلقه while قبل از شکستن کامل می‌شود.

مزایا و معایب حلقه while

اجازه دهید با نگاه کردن به تنها نقطه ضعف اصلی حلقه while شروع کنم. می تواند برای همیشه کار کند!

اگر در موقعیتی قرار بگیرید که حلقه while به طور نامحدود اجرا شود، برنامه شما گیر می کند (یا فریز می شود). سپس باید مرورگر را ببندید تا اجرای کد جاوا اسکریپت قطع شود.

باید توجه داشته باشم که حلقه while مدیریت نشده جاوا اسکریپت معمولا برای همیشه اجرا نمی شود. از آنجا که به عنوان برنامه نویس، ما همیشه این مسئولیت را داریم که مطمئن شویم در یک نقطه شرایط حلقه while ما نادرست می شود.

اکنون در مورد "مزایا" - آنها بسیار واضح هستند. در حالی که تا زمانی که شرط رعایت شود به طور مداوم اجرا می شود. نمونه ای از استفاده از حلقه while این است که از کاربر بخواهیم داده را وارد کند. حلقه از شما می خواهد که بارها و بارها داده ها را وارد کنید تا زمانی که کاربر داده های صحیح را وارد کند.

در حالی که نحو حلقه

نحو حلقه های for و while بسیار شبیه است.

شما باید از کلمه کلیدی while استفاده کنید و همچنین شرایطی را تعریف کنید که تحت آن حلقه اجرا شود. مانند سایر ساختارهای کنترلی، حلقه while محدوده آن را مشخص می کند.

کد باید به این صورت باشد:

while () (// کدی را در اینجا وارد کنید که باید در یک حلقه اجرا شود)

سخت ترین قسمت تعیین این است که چه شرایط یا شرایطی باید در حلقه قرار گیرد تا به درستی کار کند.

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

مثال حلقه while

فرض کنید می خواهیم از کاربر بخواهیم عددی را بین 1 تا 10 وارد کند. اما اگر عدد را اشتباه وارد کند چه اتفاقی می افتد؟

در این صورت باید از او بخواهیم که دوباره مقدار را وارد کند و بررسی کنیم که آیا شرط برقرار است (اعدادی بین 1 تا 10 وارد شده است یا خیر).

این موردی است که در آن یک حلقه for به طرز بدی شکست می خورد. زیرا نمی توانیم از قبل بدانیم که چند بار باید از کاربر بخواهیم عدد صحیح را وارد کند. در این صورت حلقه while به کمک ما می آید.

در اینجا ممکن است کد ما شبیه به آن باشد:

var theNumber = prompt("لطفا یک عدد بین 1 و 10 وارد کنید."); در حالی که (theNumber< 1 || theNumber >10 || isNaN(theNumber)) ( theNumber = prompt("مقدار نامعتبر وارد شده است، لطفاً عددی بین 1 و 10 وارد کنید!"); ) alert("عالی! شما یک عدد وارد کردید: " + theNumber);

شایان ذکر است که در مثال بالا سه شرط مجزا در یک حلقه while در جاوا اسکریپت داریم.

این سه شرط عبارتند از: theNumber 10 || isNaN(theNumber). آنها موارد زیر را نشان می دهند:

  • اگر عدد کمتر از 1 باشد، یا
  • اگر عدد بزرگتر از 10 باشد، یا
  • اگر theNumber یک عدد نیست، حلقه را ادامه دهید.

از آنجایی که ما از عملگر OR (||) بین همه شرایط استفاده می کنیم، به این معنی است که اگر هر یک از شرایط درست باشد، شرایط کلی حلقه while به درستی ارزیابی می شود و حلقه به اجرای خود ادامه می دهد.

تنها در صورتی که هر سه شرط نادرست ارزیابی شوند، شرایط کلی حلقه while به false ارزیابی می شود و متوقف می شود.

نتیجه

JavaScript while loop تنها حلقه واقعی در زبان های برنامه نویسی است. for فقط یک تغییر خاص از حلقه while است.

این موردی است که در آن می توانید خودتان یک حلقه for را با استفاده از نحو حلقه while ایجاد کنید، تماشا کنید و یاد بگیرید:

var counter = 0; در حالی که ( شمارنده< 10) { counter = counter + 1; console.log("The counter is currently at: " + counter); }

کد دقیقاً 10 بار تکرار می شود، نه بیشتر و نه کمتر. حلقه for دقیقاً به این صورت است.

هیچ نیازی به ترس از استفاده از جاوا اسکریپت در حین وجود ندارد. زیرا بدون آن، بسیاری از برنامه ها به سادگی کار نمی کنند!

امیدوارم از این مقاله لذت برده باشید.

ترجمه مقاله “While Loop in JavaScript” توسط تیم پروژه دوستانه تهیه شده است.

خوب بد

آخرین به روز رسانی: 04/08/2018

حلقه ها به شما این امکان را می دهند که بسته به شرایط خاصی یک عمل را چندین بار انجام دهید. جاوا اسکریپت دارای انواع حلقه های زیر است:

    برای.. در

    برای..از

    در حالی که

    انجام در حالی که

برای حلقه

حلقه for دارای تعریف رسمی زیر است:

برای ([تغییر شمارشگر]؛ [شرط]؛ [تغییر شمارنده])( // اقدامات )

به عنوان مثال، ما از یک حلقه for برای تکرار در عناصر یک آرایه استفاده می کنیم:

Var people = ["تام"، "آلیس"، "باب"، "سم"]; for(var i = 0; i= 0; i--) (consol.log(people[i])؛ )

در این حالت، آرایه از انتها خروجی می شود و آرایه از i = 3 به i = 0 تکرار می شود.

برای.. در

حلقه for..in برای تکرار در میان آرایه ها و اشیاء طراحی شده است. تعریف رسمی آن این است:

برای (شاخص در آرایه) ( // اقدامات )

به عنوان مثال، اجازه دهید روی عناصر آرایه تکرار کنیم:

Var people = ["تام"، "آلیس"، "باب"، "سم"]; for(var index در افراد)( console.log(people);)

حلقه برای...از

حلقه for...of مشابه حلقه for...in است و برای تکرار در مجموعه‌ها، مانند آرایه‌ها طراحی شده است:

Let users = ["Tom", "Bob", "Sam"]; for(let val of users) console.log(val);

عنصر مجموعه فعلی در حال تکرار در متغیر val قرار می‌گیرد، سپس مقدار آن در کنسول چاپ می‌شود.

حلقه while

حلقه while تا زمانی اجرا می شود که برخی از شرط ها درست باشد. تعریف رسمی آن این است:

while(شرط)( // اقدامات )

مجدداً عناصر آرایه را با استفاده از while نمایش خواهیم داد:

Var people = ["تام"، "آلیس"، "باب"، "سم"]; شاخص var = 0; در حالی که(شاخص< people.length){ console.log(people); index++; }

حلقه while در اینجا تا زمانی اجرا می شود که مقدار شاخص برابر با طول آرایه باشد.

انجام در حالی که

در یک حلقه do ابتدا کد حلقه اجرا می شود و سپس شرط موجود در دستور while بررسی می شود. و تا زمانی که این شرط درست باشد، چرخه تکرار می شود. مثلا:

Var x = 1; do(consol.log(x * x); x++; )while(x< 10)

در اینجا کد حلقه 9 بار اجرا می شود تا زمانی که x به 10 تبدیل شود. حلقه do تضمین می کند که اقدامات حداقل یک بار اجرا می شوند، حتی اگر شرط موجود در دستور while درست نباشد.

جملات را ادامه دهید و بشکنید

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

< array.length; i++) { if (array[i] >10) شکستن؛ document.write(array[i] + "
"); }

این حلقه در تمام عناصر آرایه تکرار می شود، اما چهار عنصر آخر در مرورگر نمایش داده نمی شوند، زیرا تست if (array[i] > 10) حلقه را با یک دستور break در هنگام تکرار از طریق آرایه به دست می آورد. عنصر 12.

اگر فقط باید از تکرار بگذریم، اما از حلقه خارج نشویم، می‌توانیم از عبارت continue استفاده کنیم:

آرایه Var = [ 1, 2, 3, 4, 5, 12, 17, 6, 7 ]; برای (var i = 0; i< array.length; i++) { if (array[i] >10) ادامه دهید؛ document.write(array[i] + "
"); }

در این صورت اگر برنامه در آرایه با عددی بیشتر از 10 مواجه شود، این عدد در مرورگر نمایش داده نمی شود.

حلقه for رایج ترین حلقه مورد استفاده در جاوا اسکریپت است.

طراحی آن به این صورت است:

برای (شروع؛ شرط؛ مرحله) ( /* بدنه حلقه */ )

واقعا ساده است. بیایید به یک مثال نگاه کنیم:

Var i; برای (i = 1; i

در این مثال:

  • شروع حلقه: i = 1 (شروع از مقدار i = 1)
  • شرایط چرخه: i
  • مرحله حلقه: i++ (در هر مرحله حلقه 1 افزایش می یابد)
  • بدنه حلقه: document.write("

    شماره مرحله چرخه اجرا می شود: " + "

    ")؛ (نمایش یک پیام بر روی صفحه نمایش)

الگوریتم گام به گام برای اجرای این حلقه برای، با جزئیات بیشتر:

  • شروع حلقه: متغیر i روی 1 تنظیم شده است. این قسمت از حلقه یک بار اجرا می شود.
  • وضعیت حلقه (i 5) بررسی می شود - انتهای حلقه.
  • بدنه حلقه اجرا می شود.
  • مرحله حلقه اجرا می شود. در مورد ما i++. همیشه بعد از بدنه حلقه اجرا می شود.
  • به نقطه 2 برگردید.
  • اگر بدنه حلقه از یک دستورالعمل تشکیل شده باشد، بریس های فرفری (...) ضروری نیستند.

    متغیر i بعد از پایان حلقه ناپدید نمی شود. به وجود خود ادامه می دهد و مقدار آن پس از پایان چرخه برابر با 6 خواهد بود.

    بیایید این داده ها را در یک مثال جدید خلاصه کنیم:

    Var i; برای (i = 1; i

    در اینجا از بریس های فرفری برای ایجاد بدنه حلقه استفاده نشده است.

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

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

    برای (var i = 1; i

    اما هنگام اعلان یک تابع، مهاربندهای فرفری (...) مورد نیاز است. عدم حضور آنها منجر به خطا می شود.

    لطفا توجه داشته باشید که در این حلقه متغیر i در ابتدای حلقه اعلام شده است: for ( var i = 1; من

    پرش برای قطعات

    به طور کلی، شروع چرخه لازم نیست نوشته شود:

    Var i = 1; برای (;i

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

    همچنین می توانید مرحله را حذف کنید:

    Var i = 1; برای (;i

    این حلقه for به یک آنالوگ از حلقه while (یعنی

    شما می توانید یک عبارت را در شرایطی قرار دهید که یک متغیر را تغییر می دهد.

    برای (i = 10; i--;) (document.write("

    مرحله حلقه اجرا می شود: " + i + ".

    "); }

    از آنجایی که مفسر جاوا اسکریپت انتظار دریافت یک مقدار بولی را دارد، هر مقداری منجر به یک نوع بولی می شود، بنابراین وقتی متغیر i در نتیجه کاهش بعدی 0 (false) شود، حلقه متوقف می شود.

    حلقه برای بی نهایت

    بله، بله، می دانم که نوشتن بی نهایت درست است :)

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

    برای (var i = 1; i

    در این مثال، متغیر i کاهش می یابد و هرگز از پنج بزرگتر نمی شود. حلقه برای همیشه اجرا خواهد شد. این اسکریپت را اجرا کنید. برای من، کروم "در فکر گم شد" و چیزی روی صفحه نمایش نمی داد، اما به فکر کردن و فکر کردن ادامه داد.

    مراقب باشید از ایجاد تصادفی حلقه های بی پایان جلوگیری کنید.

    قطع کردن حلقه for

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

    در مثال زیر، حلقه را در تکرار سوم (مرحله سوم) متوقف خواهیم کرد.

    برای (var i = 1; i

    بیایید مثال را کمی پیچیده کنیم

    بیایید فقط 100 تکرار از حلقه بی نهایت را انجام دهیم.

    Var $counter = 1; برای (var i = 1; i

    تکرار بعدی: ادامه دهید

    دستور continue تکرار فعلی را پایان می دهد و تکرار بعدی را آغاز می کند.

    دستور ادامه، «خواهر کوچکتر» دستورالعمل شکست است؛ فقط تکرار را متوقف می‌کند و نه کل حلقه را.

    برای (var i = 1; i

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

    برای (var i = 0; i

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

    برای (var i = 0; i

    دستورات استراحت/ادامه در "?"

    اجازه دهید به طور خلاصه عملگر علامت سوال "؟" را توضیح دهیم. شبیه ساز if است.

    طراحی منطقی:

    اگر (شرط) (a();) else (b();)

    مانند کد با عملگر "?" کار می کند.

    وضعیت؟ a() : b(); var i = 2; document.write("

    قسمت 1.

    ")؛ if (i == 2) document.write("

    شرایط کار کرد.

    ")؛ else document.write("

    شرایط کار نکرد

    "); document.write("

    قسمت 2.

    ")؛ i == 2 ? document.write("

    شرایط کار کرد.

    ") : document.write("

    شرایط کار نکرد

    ");

    بنابراین، مهم است که نتوانید از break/continue در سمت راست عملگر «؟» استفاده کنید

    در جاوا اسکریپت، ساختارهای نحوی که مقادیر را برمی‌گردانند، در عملگر «؟» ممنوع هستند.

    مثال زیر کار نمی کند، حاوی یک خطا است:

    برای (var i = 0; i

    برچسب‌هایی برای استراحت / ادامه

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

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

    نشانگرها تنها راهی هستند که دستورات break و continue بر اجرای حلقه بیرونی تأثیر می‌گذارند.

    دستورالعمل برچسب فقط در رابطه با شکستن یا ادامه دادن برای ارائه خروجی جایگزین از یک حلقه استفاده می شود.

    این برچسب دارای نحو "name:" است، نام برچسب باید منحصر به فرد باشد. علامت قبل از چرخه، در همان خط یا با شکست خط قرار می گیرد.

    به همین ترتیب، می توانید از دستور break در این مکان استفاده کنید. اما اگر از آن استفاده کنید، همانطور که می دانید، اجرای چرخه ها متوقف می شود.

    Var i، j; metka1: برای (i = 0؛ i

    جاوا اسکریپت دستور goto مانند PHP ندارد، فقط می توان از برچسب های break یا continue استفاده کرد.

    برچسب ها به ندرت در برنامه نویسی جاوا اسکریپت استفاده می شوند زیرا تصور می شود که خواندن و درک کد را سخت تر می کنند. توصیه می شود هنگام کدنویسی از توابع استفاده کنید.

    حلقه ها یک راه ساده برای انجام چند بار کاری هستند. این فصل از راهنمای جاوا اسکریپت شما را با اپراتورهای مختلف موجود در جاوا اسکریپت آشنا می کند.

    می‌توانید حلقه را به‌عنوان یک نسخه رایانه‌ای از یک بازی در نظر بگیرید که در آن به کسی می‌گویید X قدم‌ها را در یک جهت بردارد، سپس Y در جهت دیگر قدم می‌گذارد. به عنوان مثال، ایده بازی "5 قدم به شرق راه بروید" را می توان به صورت یک حلقه بیان کرد:

    مرحله Var; برای (گام = 0؛ گام< 5; step++) { // Запускается 5 раз, с шагом от 0 до 4. console.log("Идём 1 шаг на восток"); }

    انواع مختلفی از حلقه ها وجود دارد، اما همه آنها اساساً یک کار را انجام می دهند: آنها برخی از اقدامات را چندین بار تکرار می کنند (زمان تکرار صفر را فراموش نکنید، شمارش در آرایه از 0 شروع می شود). چرخه هایی با ساختارهای مختلف راه های متفاوتی را برای تعیین شروع و پایان چرخه ارائه می دهند. کارهای برنامه نویسی مختلف عملگرهای حلقه مخصوص به خود را دارند که با کمک آنها می توان آنها را بسیار ساده تر حل کرد.

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

    برای حلقه

    حلقه for اعمال را تا زمانی که رویداد خاتمه حلقه خاصی رخ دهد تکرار می کند. دستور for در جاوا اسکریپت مشابه عبارت for در جاوا و C است. اعلان دستور for به شرح زیر است:

    برای عبارات ([شروع]؛ [شرط]؛ [گام]).

    هنگامی که اجرا می شود، موارد زیر رخ می دهد:

  • در صورت مشخص شدن عبارت start اجرا می شود. این عبارت معمولاً یک یا چند شمارنده را مقداردهی اولیه می کند، اما نحو اجازه می دهد که عبارت از هر پیچیدگی باشد. همچنین برای اعلام متغیرها استفاده می شود.
  • شرط برقرار است. اگر شرط درست باشد، عبارات اجرا می شوند. اگر نادرست باشد، حلقه for می شکند. اگر شرط به طور کامل حذف شود، آنگاه درست در نظر گرفته می شود.
  • عبارات اجرا می شوند. برای اجرای چند عبارت، از عبارات بلوک ( ... ) برای گروه بندی عبارات استفاده می شود.
  • در صورت وجود مرحله به روز می شود و سپس کنترل به مرحله 2 برمی گردد.
  • مثال

    تابع زیر دارای یک حلقه for است که تعداد ژانرهای انتخاب شده را در فهرست اسکرول می شمارد (عنصری که به شما امکان می دهد چندین مورد را انتخاب کنید). حلقه for یک متغیر i را اعلام می‌کند و مقدار آن را 0 می‌کند. همچنین بررسی می‌کند که i کمتر از تعداد عناصر موجود در عنصر باشد، دستور if را اجرا می‌کند و بعد از هر عبور از حلقه، i را یک واحد افزایش می‌دهد.

    برخی از ژانرهای موسیقی را انتخاب کنید و سپس روی دکمه زیر کلیک کنید: R&B Jazz Blues New Age Classical Opera

    تابع howMany(selectObject) ( var numberSelected = 0; for (var i = 0; i< selectObject.options.length; i++) { if (selectObject.options[i].selected) { numberSelected++; } } return numberSelected; } var btn = document.getElementById("btn"); btn.addEventListener("click", function(){ alert("Выбрано элементов: " + howMany(document.selectForm.musicTypes)) });

    انجام ... در حالی که حلقه

    حلقه do...whil تا زمانی که شرط داده شده درست باشد تکرار می شود. عبارت do...whil به صورت زیر است:

    Do عبارت while(condition);

    عبارات تا زمانی اجرا می شوند که شرط درست باشد. برای استفاده از چند عبارت، از یک عبارت بلوک ( ... ) برای گروه بندی آنها استفاده کنید. اگر شرط درست باشد، عبارات دوباره اجرا می شوند. در پایان هر پاس شرایط بررسی می شود. اگر شرط نادرست باشد، اجرا به حالت تعلیق در می‌آید و کنترل به عبارت بعد از do...while منتقل می‌شود.

    مثال

    در مثال زیر، حلقه do حداقل 1 بار اجرا می شود و تا زمانی که i کمتر از 5 باشد دوباره اجرا می شود.

    انجام دهید (i += 1; console.log(i)؛ ) در حالی که (i< 5);

    حلقه while

    حلقه while عبارات را تا زمانی که شرط درست باشد اجرا می کند. به نظر می رسد این است:

    در حالی که (شرط) عبارات

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

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

    برای استفاده از چند عبارت، از یک بلوک عبارت (...) برای گروه بندی آنها استفاده کنید.

    مثال 1

    حلقه while زیر تا زمانی که n کمتر از سه باشد اجرا می شود:

    Var n = 0; var x = 0; در حالی که (n< 3) { n++; x += n; }

    با هر تکرار، حلقه n را افزایش می دهد و آن مقدار را به x اضافه می کند. بنابراین، x و n مقادیر زیر را بدست می آورند:

    • پس از اولین پاس: n = 1 و x = 1
    • بعد از دوم: n = 2 و x = 3
    • بعد از پاس سوم: n = 3 و x = 6

    پس از عبور سوم، شرط n< 3 становится ложным, поэтому цикл прерывается.

    مثال 2

    از حلقه های بی پایان خودداری کنید. مطمئن شوید که شرط حلقه در نهایت نادرست می شود. در غیر این صورت، چرخه هرگز قطع نخواهد شد. عبارات حلقه while بعدی برای همیشه اجرا خواهند شد زیرا شرط هرگز نادرست نخواهد شد:

    در حالی که (درست) (console.log ("سلام، دنیا")؛ )

    برچسب

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

    نحو برچسب به شرح زیر است:

    برچسب: اپراتور

    معنی برچسب هامی تواند هر شناسه جاوا اسکریپت معتبری باشد که یک کلمه رزرو شده نیست. اپراتور , عبارتی که بعد از برچسب مشخص می کنید می تواند هر عبارتی باشد.

    مثال

    در این مثال، markLoop نشان دهنده یک حلقه while است.

    MarkLoop: while (theMark == true) (doSomething();)

    زنگ تفريح

    از دستور break برای شکستن یک حلقه، تغییر کنترل یا در ترکیب با دستور برچسب استفاده کنید.

    • وقتی از break بدون برچسب استفاده می کنید، while، do-while، و برای حلقه ها را می شکند یا بلافاصله کنترل را به عبارت بعدی تغییر می دهد.
    • وقتی از break با علامت استفاده می کنید، عبارت مشخص شده خاص را می شکند.

    دستور عملگر می تواند این باشد:

  • زنگ تفريح؛
  • زنگ تفريح برچسب;
  • شکل اول نحو، حلقه را به طور کلی می شکند یا کنترل را تغییر می دهد. دومی یک عبارت مشخص شده را قطع می کند.

    مثال 1

    مثال زیر در میان عناصر یک آرایه تکرار می شود تا زمانی که عنصری را پیدا کند که مقدار آن theValue است:

    برای (i = 0; i< a.length; i++) { if (a[i] == theValue) { break; } }

    مثال 2: وقفه برچسب var x = 0; var z = 0 labelCancelLoops: while (true) (console.log("حلقه بیرونی:" + x)؛ x += 1؛ z = 1؛ while (true) (console.log("حلقه داخلی: " + z) ؛ z += 1؛ اگر (z === 10 && x === 10) ( شکست labelCancelLoops; ) در غیر این صورت اگر (z === 10) (شکست؛ ) ) ) ادامه دهید

    دستور continue برای حرکت یک گام به جلو در while، do-while، برای حلقه ها یا برای پرش به یک برچسب استفاده می شود.

    • وقتی از continue بدون برچسب استفاده می‌کنید، تکرار فعلی حلقه‌های while، do-while و for را می‌شکند و حلقه را از تکرار بعدی ادامه می‌دهد. برخلاف break، continue اجرای حلقه را به طور کامل قطع نمی کند. در حلقه while به شرط میپرد. و برای آن گام را افزایش می دهد.
    • وقتی از ادامه با برچسب استفاده می کنید، روی حلقه با آن برچسب اعمال می شود.

    دستور Continue ممکن است به شکل زیر باشد:

  • ادامه هید؛
  • ادامه هید برچسب ;
  • مثال 1

    مثال زیر یک حلقه while با یک دستور continue نشان می‌دهد که وقتی مقدار i 3 باشد فعال می‌شود. بنابراین، n مقادیر 1، 3، 7 و 12 را دریافت می‌کند.

    Var i = 0; var n = 0; در حالی که (من< 5) { i++; if (i == 3) { continue; } n += i; }

    مثال 2

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

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

    چکیانج: در حالی که (من< 4) { console.log(i); i += 1; checkj: while (j >4) ( console.log(j)؛ j -= 1؛ if ((j % 2) != 0) (ادامه checkj؛ ) console.log(j + "حتی.")؛ ) console.log("i = " + i); console.log("j = " + j); )

    برای ... در

    عبارت for...in از طریق تمام خصوصیات قابل شمارش یک شی تکرار می شود. جاوا اسکریپت عبارات مشخص شده را برای هر ویژگی جداگانه اجرا می کند. حلقه for...in به شکل زیر است:

    برای (متغیر در شی) (عبارات)

    مثال

    تابع زیر یک شی و نام آن را به عنوان آرگومان می گیرد. سپس از طریق تمام خصوصیات شیء تکرار می شود و رشته ای را برمی گرداند که حاوی نام ویژگی ها و مقادیر آنها است.

    تابع dump_props(obj, obj_name) (var result = ""؛ برای (var i در obj) (نتیجه += obj_name + "." + i + " = " + obj[i] + "
    "; ) نتیجه += ""؛ نتیجه برگردان؛ )

    برای یک شیء ماشین با ویژگی های ساخت و مدل، نتیجهاراده :

    Car.make = ماشین فورد.مدل = موستانگ

    مثال شماره 2

    همچنین می توانید مقدار را با کلید نمایش دهید:

    اجازه دهید obj = (مدل: "AUDI A8"، سال: "2019"، رنگ: "قهوه ای") برای (کلید در obj) (consol.log(`$(key) = $(obj)`); ) // مدل = AUDI A8 // سال = 2019 // رنگ = قهوه ای

    آرایه ها

    اگرچه استفاده از for...به عنوان روشی برای تکرار در تمام عناصر یک آرایه وسوسه انگیز است، این عملگر نام ویژگی های تعریف شده توسط کاربر را علاوه بر شاخص های عددی برمی گرداند. بنابراین، بهتر است هنگام تعامل با آرایه‌ها، از استاندارد for برای شاخص‌های عددی استفاده شود، زیرا در صورت تغییر آرایه، مانند افزودن ویژگی‌ها و روش‌ها، دستور for...in روی ویژگی‌های تعریف‌شده توسط کاربر علاوه بر عناصر آرایه تکرار می‌شود.

    برای ( متغیراز هدف - شی) { اصطلاحات}

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

    اجازه دهید arr = ; arr.foo = "سلام"; for (let i in arr) (consol.log(i); // "0"، "1"، "2"، "foo" ) را برای (let i of arr) (consol.log(i) چاپ می کند؛ / / خروجی های "3"، "5"، "7")

    حلقه ها عبارات خاصی هستند که به شما امکان می دهند یک بلوک کد را چندین بار اجرا کنید. اجرای کد زمانی که شرایط خاصی رخ می دهد قطع می شود.

    جاوا اسکریپت انواع مختلفی از حلقه ها را به برنامه نویسان ارائه می دهد. بیایید نگاهی دقیق تر به آنها بیندازیم.

    حلقه با شمارنده

    چرخهاگر برخی از کدها باید تعداد دفعات مشخصی اجرا شوند، با یک شمارنده راحت است. این احتمالاً رایج ترین نوع چرخه است.

    یک حلقه با شمارنده به این صورت نوشته می شود:

    برای (؛ ؛ )

    در اینجا از کلمه کلیدی for استفاده می شود. بنابراین، چنین حلقه هایی اغلب "حلقه های برای" نامیده می شوند.

    عبارت مقداردهی اولیه اولین بار و تنها یک بار اجرا می شود. یک متغیر ویژه به نام شمارنده حلقه را به مقدار اولیه (معمولاً 1) اختصاص می دهد. شمارنده حلقه شمارش می کند که چند بار بدنه حلقه - کد واقعی که باید چند بار اجرا شود - اجرا شده است.

    مرحله بعدی بررسی شرایط است. لحظه ای را تعیین می کند که اجرای حلقه قطع می شود و کد زیر شروع به اجرا می کند. به طور معمول، شرط مقدار شمارنده حلقه را با مقدار محدود آن مقایسه می کند. اگر شرط درست برگردد، بدنه حلقه اجرا می شود، در غیر این صورت حلقه به پایان می رسد و کد زیر حلقه اجرا را آغاز می کند.

    پس از عبور از بدنه حلقه، عبارت increment اجرا می شود که مقدار شمارنده را تغییر می دهد. این عبارت معمولا شمارنده را افزایش می دهد (مقدار آن را یک افزایش می دهد). بعد دوباره شرط بررسی می شود، بدنه حلقه اجرا می شود، افزایش اجرا می شود و غیره تا شرط false شود.

    مثالی از یک حلقه با شمارنده:

    برای (i = 1; i< 11; i++) {
    a += 3;
    b = i * 2 + 1;
    }

    این حلقه 10 بار اجرا می شود. به شمارنده i مقدار اولیه 1 اختصاص می دهیم و پس از هر بار اجرای بدنه حلقه آن را یک عدد افزایش می دهیم. هنگامی که شمارنده به 11 افزایش یابد و شرط حلقه نادرست شود، اجرای حلقه متوقف می شود.

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

    در اینجا دو مثال دیگر از یک حلقه با شمارنده آورده شده است:

    برای (i = 10; i > 0; i--) (
    a += 3;
    b = i * 2 + 1;
    }

    در اینجا مقدار شمارنده کاهش می یابد. مقدار اولیه آن 10 است. حلقه 10 بار اجرا می شود و زمانی پایان می یابد که شمارنده i حاوی 0 باشد. در این حالت، مقادیر دومی به طور متوالی از 10 به 1 کاهش می یابد.

    برای (i = 2; i< 21; i += 2) b = i * 2 + 1;

    و در این مثال مقدار اولیه شمارنده 2 و مقدار نهایی 21 است اما حلقه مجدداً 10 بار اجرا می شود. و همه به این دلیل است که مقدار شمارنده 2 افزایش می یابد و به طور متوالی مقادیر 2، 4، 6... 20 را می گیرد.

    حلقه با شرط پست

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

    قالب حلقه با شرط پست:

    انجام دادن

    در حالی که()؛

    برای تعریف یک حلقه با شرط پس، کلیدواژه‌های do و while ارائه می‌شوند، به همین دلیل است که این حلقه‌ها اغلب «حلقه‌های do-while» نامیده می‌شوند.

    در اینجا یک مثال از یک حلقه با یک شرط پست است:

    انجام دادن(
    a = a * i + 2;
    ++i;
    ) در حالی که (الف< 100);

    این هم یک مثال دیگر:

    var a = 0، i = 1;
    انجام دادن(
    a = a * i + 2;
    ++i;
    ) در حالی که (i< 20);

    اگرچه در اینجا استفاده از یک حلقه با شمارنده ای که قبلاً برای ما آشناست و مخصوصاً برای چنین مواردی طراحی شده است راحت تر است.

    حلقه با پیش شرط

    یک حلقه با یک پیش شرط با یک حلقه با یک شرط پس از این تفاوت دارد که این شرط قبل از اجرای بدنه حلقه بررسی می شود. بنابراین، اگر آن (شرط) در ابتدا false باشد، حلقه حتی یک بار هم اجرا نمی شود:

    در حالی که()

    برای ایجاد یک حلقه با شرط post، کلمه کلیدی while ارائه شده است. بنابراین، به چنین حلقه‌هایی «حلقه‌های در حالی» نیز می‌گویند (نباید با «حلقه‌های do-while» اشتباه شود!).

    مثالی از یک حلقه با پیش شرط:

    در حالی که (الف< 100) {
    a = a * i + 2;
    ++i;
    }

    قطع و شروع مجدد یک چرخه

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

    عملگر break به شما امکان می دهد اجرای یک حلقه را قطع کنید و به عبارت بعدی بروید:

    در حالی که (الف< 100) {
    a = a * i + 2;
    اگر (a> 50) شکسته شود.
    ++i;
    }

    در این مثال، اگر مقدار متغیر a از 50 بیشتر شود، حلقه را می شکنیم.

    عملگر restart به شما امکان می دهد حلقه را مجدداً راه اندازی کنید، یعنی تمام عبارات بعدی موجود در بدنه حلقه را اجرا نشده رها کنید و از همان ابتدا شروع به اجرای حلقه کنید: بررسی شرط، اجرای افزایش و بدنه و غیره.

    مثال:

    در حالی که (الف< 100) {
    i = ++i;
    اگر (i > 9 && i< 11) continue;
    a = a * i + 2;
    }

    در اینجا از عبارتی که a را برای همه مقادیر i از 10 تا 20 ارزیابی می کند، صرف نظر می کنیم.

    بهترین مقالات در این زمینه