حلقهwhile مي تواند بلوكي از كد را تازماني كه شرايطي برقرارباشد، اجرا نمايد .
باwhile جاوااسكريپت ميتوان بلوك كدي را تازمانيكه شرطي برقرار باشد، حلقه وار اجرانمود.
فرم كلي(Syntax) حلقهwhile
while (condition) { // code block to be executed }
مثال ـ در مثال زير بلوك كد در حلقه تازمانيكه(i<10) اجرا مي شود .
while (i < 10) { text += "The number is " + i; i++; }
اگرمتغير استفاده در شرط را در بلوك فراموش كنيد افزايش دهيد، حلقه مدام اجرا ميگردد ومتوقف نميشود .اما در چنين حالتي مرورگر از فعاليت مي افتد.
حلقهdo while با حلقهwhile متفاوت است .بلوك مربوط بدووايل بار اول بدون كنترل شرط اجرا ميگردد و دور هاي بعدي با كنترل شرط(true) اجرا ميشود .در صورت نادرست بودن شرط اجراي بلوك متوقف خواهد شد.
فرم كلي(Syntax) دووايل
do { // code block to be executed } while (condition);
مثال ـ در مثال زير يك حلقهdo while است .حلقه هميشه يك بار اجرا ميشود . درانتهاي حلقه شرط ارزيابي ميشود، در صورت درست بودن دور بعدي اجرا ميگردد .عمل اجرا تا زمانيكه شر ط درست است ادامه يافته در غيراينصورت اجراي حلقه متوقف خواهد شد.
do { text += "The number is " + i; i++; } while (i < 10);
هر گز روند تغيير متغير شرطي را در بلوك فراموش نكنيد، در غيراينصورت حلقه هرگز پايان نمي يابد.
در صورتيكه بخش هاي قبلي حلقه ها را مطالعه نموديد، متوجه شده ايد، كهwhile مشابهfor است با
توجه باينكه عبارت يك
مثال ـ در اين مثال ازfor فقط از عبارت دوم استفاده شده
onst cars = ["BMW", "Volvo", "Saab", "Ford"]; let i = 0; let text = ""; for (;cars[i];) { text += cars[i]; i++; }
مثال ـ مشابه همان مثال قبلي با حلقهwhile با شرط مشابه
const cars = ["BMW", "Volvo", "Saab", "Ford"]; let i = 0; let text = ""; while (cars[i]) { text += cars[i]; i++; }
توجه كنيد كه در شرط هر دو مثالcars[i] بوده كه درصورت غير صفربودن عنصر carsباشد ، نتيجه شرطtrue در غير اينصورتfalse است . توجه كنيد مقاديرNaN و undefind هم نتيجهfalse دارد .