حلقه do while

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

do
{
   code to repeat;

} while (condition);

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

var number = 1;
do
{
    console.log("Hello World!");
} while (number > 10);
Hello World!

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

var number = 1;
while (number > 10)
{
    console.log("Hello World!");
}

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

//while version

number = parseInt(prompt("Enter a number greater than 10: "));

while(number < 10)
{
    number = parseInt(prompt("Enter a number greater than 10: "));
}
//do while version

do
{
    number = parseInt(prompt("Enter a number greater than 10: "));     
} while (number < 10);

مشاهده می‌کنید که از کدهای کمتری در بدنه do while نسبت به while استفاده شده است.