آموزش PHP – جلسه ششم: حلقه‌ های While و For

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

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

حلقه while

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

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

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

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

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

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

حلقه Do…While

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

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

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

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

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

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

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

۵
۶
۷

اما در پی‌اچ‌پی برای استفاده از حلقه‌ها باز هم محدود به این دو روش نیستید. روش بعدی استفاده از حلقه 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 تعریف کرده و مقدار پیش‌فرض آن را عدد ۱ تعیین کردیم. سپس شرط حلقه را نوشته‌ایم که به پی‌اچ‌پی می‌گوید تا زمانی‌که مقدار i کوچکتر از عدد ۷ است حلقه را اجرا کند. در آخر مقدار متغیر شمارنده را به نحوی تعیین کرده‌ایم که بعد از هربار اجرای حلقه یک واحد افزایش داده شود. کد داخل حلقه نیز مقدار کنونی متغیر i را چاپ خواهد کرد. در نتیجه خروجی کد بالا در مرورگر به صورت زیر خواهد بود:

۱
۲
۳
۴
۵
۶

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

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

<table align=”center”>
<?php
for($i=1; $i<=10; $i++){
for($j=1; $j<=10; $j++){
echo “$i*$j”;
echo ” – “;
}
echo “</br>”;
echo “</br>”;
}
?>
</table>

تنها نکته‌ای که در مثال بالا وجود دارد، این است که همانند دستورات تو در توی if در اینجا نیز از حلقه for به صورت تو در تو استفاده کرده‌ایم. شما می‌توانید همانند IFهای تودرتو بی نهایت حلقه While یا For را هم به همان شکل مورد استفاده قرار دهید. خروجی کد بالا در مرورگر کاربر به صورت زیر خواهد بود:

۱*۱ – ۱*۲ – ۱*۳ – ۱*۴ – ۱*۵ – ۱*۶ – ۱*۷ – ۱*۸ – ۱*۹ – ۱*۱۰ –

۲*۱ – ۲*۲ – ۲*۳ – ۲*۴ – ۲*۵ – ۲*۶ – ۲*۷ – ۲*۸ – ۲*۹ – ۲*۱۰ –

۳*۱ – ۳*۲ – ۳*۳ – ۳*۴ – ۳*۵ – ۳*۶ – ۳*۷ – ۳*۸ – ۳*۹ – ۳*۱۰ –

۴*۱ – ۴*۲ – ۴*۳ – ۴*۴ – ۴*۵ – ۴*۶ – ۴*۷ – ۴*۸ – ۴*۹ – ۴*۱۰ –

۵*۱ – ۵*۲ – ۵*۳ – ۵*۴ – ۵*۵ – ۵*۶ – ۵*۷ – ۵*۸ – ۵*۹ – ۵*۱۰ –

۶*۱ – ۶*۲ – ۶*۳ – ۶*۴ – ۶*۵ – ۶*۶ – ۶*۷ – ۶*۸ – ۶*۹ – ۶*۱۰ –

۷*۱ – ۷*۲ – ۷*۳ – ۷*۴ – ۷*۵ – ۷*۶ – ۷*۷ – ۷*۸ – ۷*۹ – ۷*۱۰ –

۸*۱ – ۸*۲ – ۸*۳ – ۸*۴ – ۸*۵ – ۸*۶ – ۸*۷ – ۸*۸ – ۸*۹ – ۸*۱۰ –

۹*۱ – ۹*۲ – ۹*۳ – ۹*۴ – ۹*۵ – ۹*۶ – ۹*۷ – ۹*۸ – ۹*۹ – ۹*۱۰ –

۱۰*۱ – ۱۰*۲ – ۱۰*۳ – ۱۰*۴ – ۱۰*۵ – ۱۰*۶ – ۱۰*۷ – ۱۰*۸ – ۱۰*۹ – ۱۰*۱۰ –

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

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

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

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

منبع: زومیت

1 دیدگاه در “آموزش PHP – جلسه ششم: حلقه‌ های While و For

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.