حلقه تکرار while
خوش اومدین به سی و چهارمین جلسه از دوره آموزش جاوا اسکریپت. ما در جلسه قبل با حلقه for و for in آشنا شدیم. توی این با دو حلقه کنترل تکرار با نامهای while و do while آشنا خواهیم شد. ما با استفاده از این دو حلقه میتوانیم یک بلوک کد رو به تعداد مشخصی تکرار کنیم. تنها تفاوت while و do wihle در این است که حلقه do while حداقل یک بار اجرا میشود ولی حلقه while ممکن است که اصلا اجرا نشود.
حلقه while در جاوا اسکریپت
حلقه while در جاوا اسکریپت یک حلقه کنترل جریان است که تا زمانی که شرط مشخص شده درست باشد، بلاک کد را تکرار میکند. ساختار کلی حلقه while در جاوا اسکریپت به صورت زیر است:
while (شرط) {
// بلاک کد
}
در این ساختار، ابتدا شرط بررسی میشود. اگر شرط درست (true) باشد، بلاک کد درون حلقه اجرا میشود. سپس بعد از اجرای بلاک کد، شرط مجدداً بررسی میشود. اگر شرط هنوز درست باشد، بلاک کد مجدداً اجرا میشود و این فرآیند تا زمانی ادامه پیدا میکند که شرط نادرست (false) شود. در آن صورت، اجرای حلقه متوقف میشود و کنترل به خارج از حلقه منتقل میشود.
برای مثال، فرض کنید میخواهید اعداد 1 تا 5 را در خروجی چاپ کنید. این کار را میتوان با استفاده از حلقه while به صورت زیر انجام داد:
var i = 1;
while (i <= 5) {
console.log(i);
i++;
}
در این مثال، شرط i <= 5
تا زمانی که درست باشد، بلاک کد داخل حلقه اجرا میشود. در هر اجرا، مقدار i
چاپ میشود و سپس با استفاده از عملگر ++
افزایش مییابد. پس از اجرای حلقه، مقدار i
به ترتیب 1، 2، 3، 4 و 5 خواهد بود و اعداد متناظر با آنها در خروجی نمایش داده میشوند.
حلقه do while در جاوا اسکریپت
حلقه do while در جاوا اسکریپت نیز یک حلقه کنترل جریان است که بلاک کد را تا زمانی که شرط مشخص شده درست باشد، تکرار میکند. اما با این تفاوت که حداقل یک بار حتماً بلاک کد داخل حلقه اجرا میشود و سپس شرط بررسی میشود. ساختار کلی حلقه do while در جاوا اسکریپت به صورت زیر است:
do {
// بلاک کد
} while (شرط);
در این ساختار، بلاک کد درون حلقه اجرا میشود و سپس شرط بررسی میشود. اگر شرط درست (true) باشد، بلاک کد مجدداً اجرا میشود و این فرآیند تا زمانی ادامه پیدا میکند که شرط نادرست (false) شود. در آن صورت، اجرای حلقه متوقف میشود و کنترل به خارج از حلقه منتقل میشود.
یک مثال ساده از استفاده از حلقه do while میتواند به شرح زیر باشد:
var i = 1;
do {
console.log(i);
i++;
} while (i <= 5);
در این مثال، بلاک کد داخل حلقه ابتدا اجرا میشود و مقدار i
چاپ میشود. سپس با استفاده از عملگر ++
، مقدار i
افزایش مییابد. سپس شرط i <= 5
بررسی میشود. اگر شرط هنوز درست باشد، بلاک کد مجدداً اجرا میشود و فرآیند تکرار ادامه مییابد. در نهایت، وقتی که شرط نادرست (false) شود، اجرای حلقه متوقف میشود و کنترل به خارج از حلقه منتقل میشود. در این مثال، اعداد 1 تا 5 به ترتیب در خروجی نمایش داده میشوند.
مقایسه for و while در جاوا اسکریپت
حلقههای for
و while
در جاوا اسکریپت هر دو برای تکرار بلاک کد در زمانهایی که شرطی برقرار استفاده میشوند. اما دارای تفاوتهایی هستند و برای موارد مختلفی مناسب هستند. در ادامه، تفاوتهای اصلی بین این دو حلقه را بررسی خواهیم کرد:
ساختار:
for
: حلقهfor
دارای ساختار مشخصی است که شامل مقدار اولیه، شرط و عملگر به روزرسانی است. این ساختار معمولاً برای تکراریهایی که تعداد دفعات تکرار مشخص استفاده میشود.while
: حلقهwhile
بر اساس بررسی شرط قبل از هر تکرار عمل میکند و اگر شرط برقرار باشد، بلاک کد تکرار میشود. این حلقه برای مواردی مناسب است که تعداد دفعات تکرار ممکن است متغیر و ناشناخته باشد.
استفاده از متغیر کنترل:
for
: در حلقهfor
میتوان یک متغیر کنترل را در قسمت اولیه تعریف کرد و از آن برای ردیابی تعداد دفعات تکرار استفاده کرد. این متغیر معمولاً با استفاده از عملگرهای تقریباً یکسان، افزایش یا کاهش مییابد.while
: در حلقهwhile
باید متغیر کنترل را خارج از حلقه تعریف کرده و در دستهبندی قبل از حلقه بروزرسانی کنید. این متغیر برای کنترل تعداد دفعات تکرار استفاده میشود.
شرایط توقف:
for
: شرط توقف در حلقهfor
به طور معمول در بخش شرط قرار میگیرد. اگر شرط غلط باشد، حلقه متوقف میشود و کنترل به خارج از حلقه منتقل میشود.while
: شرط توقف در حلقهwhile
در ابتدا بررسی نمیشود. بلاک کد حداقل یک بار اجرا میشود و سپس شرط بررسی میشود. اگر شرط غلط باشد، حلقه متوقف میشود و کنترل به خارج از حلقه منتقل میشود.
به طور کلی، اگر تعداد دفعات تکرار مشخص است، for
مناسب است. اما اگر تعداد دفعات تکرار متغیر و ناشناخته است، while
مناسبتر است. همچنین ممکن است در برخی موارد مشخص شود که یک حلقه بهتر از دیگری استفاده شود، اما این بستگی به شرایط خاص برنامه و نیازهای آن دارد.