while (تکرار تا زمان برقرار بودن شرط)حلقه while کدهای شما رو تا زمانی که شرطِ داخل پرانتز درست (true) باشه، پشت سر هم تکرار میکنه.
ساختار کلی این حلقه به این صورت هست:
while (شرط مورد نظر) {
// کدهایی که باید تکرار بشن
}
تست کردنِ شرط، قبل از اجرای کدهای داخل حلقه انجام میشه.
اول جاوااسکریپت شرط رو نگاه میکنه؛ اگر درست (true) بود، میره داخل آکلواد و کدها رو اجرا میکنه.
وقتی کدهای داخل آکلواد تموم شد، دوباره برمیگرده بالا و شرط رو چک میکنه.
این چرخه انقدر تکرار میشه تا بالاخره یکبار شرط غلط (false) از آب در بیاد. به محض اینکه شرط غلط بشه، کامپیوتر از حلقه میپره بیرون و میره سراغ بقیه کدهای صفحه.
به این کد نگاه کن؛ دو تا متغیر داریم که مقدار اولیهشون صفره:
let n = 0;
let x = 0;
while (n < 3) {
n++;
x += n;
}
بیا قدمبهقدم ببینیم پشت صحنه چه اتفاقی میافته:
دور اول: جاوااسکریپت چک میکنه آیا 0 < 3 هست؟ بله. پس وارد حلقه میشه. یکی به n اضافه میکنه (مقدار n میشه ۱). بعد n رو با x جمع میکنه (مقدار x هم میشه ۱).
دور دوم: آیا 1 < 3 هست؟ بله. یکی به n اضافه میشه (n میشه ۲). مقدار جدید n با x جمع میشه (x میشه $1 + 2 = 3$).
دور سوم: آیا 2 < 3 هست؟ بله. یکی به n اضافه میشه (n میشه ۳). مقدار جدید n با x جمع میشه (x میشه $3 + 3 = 6$).
دور چهارم: آیا 3 < 3 هست؟ نخیر! شرط غلط شد. حلقه همینجا ترمز میکنه و تمام.
در نهایت بعد از اتمام حلقه، مقدار n برابر با ۳ و مقدار x برابر با ۶ خواهد بود.
حواست رو خیلی جمع کن! همیشه باید کدهای داخل حلقه رو طوری بنویسی که بالاخره یک روزی، یک جایی، شرطِ حلقه غلط بشه. اگر شرط همیشه درست بمونه، حلقه تا ابد تکرار میشه، مرورگر کاربر هنگ میکنه و سیستم قفل میشه!
به این مثال خطرناک نگاه کن:
// این کار اصلاً خوب نیست و مرورگر رو کرش میده!
while (true) {
console.log("سلام دنیا!");
}
چون شرط رو گذاشتیم true و هیچوقت هم تغییرش نمیدیم، این حلقه تا ابد متن "سلام دنیا!" رو چاپ میکنه و هیچوقت متوقف نمیشه. پس همیشه حواست به منطقِ شرطهای while باشه.
این محتوا کاملا رایگان توسط تیم کدلپر ترجمه شده و در اختیار شما کاربران عزیز قرار گرفته است، هر گونه کپی برداری برای مقاصد غیر رایگان و بدون ذکر منبع، مورد پیگیری قانونی قرار میگیرد.
ترجمه شده از منبع: https://developer.mozilla.org/en-US/docs/Web/JavaScript