آموزش PHP - بخش ششم: حلقه های for و while

آموزش PHP - بخش ششم: حلقه های for و while

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

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

حلقه while

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

<?php
while ($var < 10)
{
    echo "var is now < 10";
}
?>

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

کار را با یک مثال دیگر ادامه بدیم.در مثال زیر ابتدا متغیر i=1 را قرار دادیم و شرط حلقه را i<7، اعلام می‌کنیم تا زمانیکه مقدار i از عدد 7 کوچک‌تر باشد، کد داخل حلقه اجرا شود. در کد سورس حلقه ابتدا مقدار کنونی i را چاپ کرده و سپس با استفاده از عملگر افزایشی که در جلسات پیش با آن آشنا شدیم، در هر بار اجرای حلقه یک واحد به مقدار کنونی متغیر i اضافه می‌کنیم. بدین ترتیب کد حلقه تا زمانیکه مقدار i کوچک‌تر از عدد 7 باشد، اجرا خواهد شد و‌ نتیجه مثال زیر چاپ اعداد 1 تا 6 خواهد بود.

<?php
$i = 1;
while ($i < 7)
{
    echo "$i <br>";
    $i++;
}
?>

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

حلقه Do...While

همانطور که گفتیم در صورتی که بخواهیم کد سورس در حالت برقرار نبودن شرط حلقه یکبار اجرا شود، باید از Do ... While استفاده کنید. روش کلی استفاده از این نوع حلقه در مثال زیر آورده شده است:

<?php
$i = 8;
do{
    echo "meqdare i = $i ast";
    $i++;
}while ($i < 7);
?>

در کد بالا ابتدا مقدار متغیر i را برابر 8 تعیین می‌کنیم. سپس با دستور Do... while ابتدا یک دستور چاپ echo را وارد کرده‌ایم که مقدار کنونی i را نمایش دهد. (دقت کنید برای اینکه قصد دارید مقدار متغیر در دستور echo چاپ شود از دابل کوتیشن " " استفاده کرده‌ایم.) سپس با عملگر افزایش ++ یک واحد به مقدار کنونی i اضافه کردیم. تا زمانیکه شرط داخل While برقرار باشد کد ما نیز اجرا خواهد شد. اما از آنجا که در شرط حلقه فوق برقرار نیست، فقط یک بار شاهد اجرای دستور نوشته شده در این حلقه خواهیم بود.

پس با اضافه کردن Do به حلقه While مشاهده کردید که چگونه می‌توان کد مورد نظر را حداقل یکبار در صورتی که شرط هم برقرار نباشد اجرا کنیم. 

برای درک بهتر به مثال دیگری در این مورد توجه می کنیم. در کد زیر ابتدا مقدار متغیر i=5 تعیین می‌کنیم و سپس با استفاده از حلقه do...while اعلام می‌کنیم تا هنگامی که شرط ما i<=7 برقرار است، کد حلقه که اینبار در بخش do نوشته شده، اجرا شود.

<?php
$i = 5;
do {
   echo "number is now $i <br>";
   $i++;
}while($i <= 7);
?>

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

5
6
7

اما در پی‌اچ‌پی برای استفاده از حلقه‌ها باز هم محدود به این دو روش نیستید. روش بعدی استفاده از حلقه For است.

حلقه For

اگر به مثال‌هایی که در بخش توضیحات حلقه While آوردیم دقت کرده باشید، متوجه شده‌اید که در هر مثال از یک متغیر به نوعی به عنوان یک شمارشگر بهره برده‌ایم تا در هر بار اجرای حلقه بتوانیم تعداد دفعات تکرار اجرا شدن آن را کنترل کنیم. در حلقه For بر خلاف While حتما باید در دستور اصلی این حلقه یک شمارنده تعریف کنیم. برای اینکه بهتر موضوع را درک کنیم به کد زیر توجه کنید که ساده‌ترین حالت استفاده از حلقه For در پی‌اچ‌پی است:

<?php
//using for in php in simplest mode!
for (init; test; incremnet){
   code to run
}
?>

در کد بالا منظور از init در واقع تعریف و مقدار دهی یک شمارشگر است. test شرط حلقه خواهد بود و تا زمانیکه این شرط برقرار باشد (یعنی true را برگرداند) حلقه اجرا خواهد شد و در نهایت incremnet مقدار اضافه شدن یا کاسته شدن شمارشگر حلقه در هربار اجرای آن است (دقیقا همان کار عملگر افزایش و کاهشی که در while استفاده کردیم را می‌کند). همچنین به این نکته توجه کنید که بین هر کدام از این موارد باید علامت سمیکلون ; را تایپ کنید.

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

<?php
for ($i = 1; $i < 7; $i++)
{
    echo "$i <br>";
}
?>

در کد بالا ابتدا شمارنده حلقه را با متغیری به نام i = 1 تعیین کردیم. سپس شرط حلقه را نوشته‌ایم که به پی‌اچ‌پی می‌گوید تا زمانیکه مقدار i<7 است حلقه را اجرا کند. در آخر شمارنده را به نحوی تعیین کردیم که بعد از هربار اجرای حلقه یک واحد افزایش داده شود. در نتیجه خروجی کد بالا در مرورگر به صورت زیر خواهد بود:

1
2
3
4
5
6

استفاده از حلقه For نسبت به while باعث می‌شود کدنویسی شما کمتر و سرعت آن بیشتر شود. همچنین حلقه ها می توانند بصورت تو در تو بکار گرفته شوند. 

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

پیروز باشید.

مطالب مشابه