بخش چهارم: حلقهٔ for
۴-۱. تعریف
حلقهٔ for زمانی به کار میرود که تعداد تکرارها مشخص باشد. در این حلقه، سه بخش مقدار اولیه، شرط ادامه و تغییر مقدار در یک خط نوشته میشوند. به همین دلیل، حلقهٔ for کوتاهتر و خواناتر از while است.
۴-۲. ساختار
<?php
for (مقدار اولیه; شرط ادامه; تغییر مقدار) {
// دستوراتی که باید تکرار شوند
}
?>
اجزای این ساختار:
- کلمهٔ کلیدی
for - سه بخش داخل پرانتز که با نقطهویرگول از هم جدا میشوند
- بدنهٔ حلقه داخل آکولاد
{ }
سه بخش داخل پرانتز:
| بخش | مثال | وظیفه |
|---|---|---|
| مقدار اولیه | $i = 1 |
مقدار شروع شمارنده را تعیین میکند |
| شرط ادامه | $i <= 10 |
تا زمانی که درست باشد، حلقه ادامه مییابد |
| تغییر مقدار | $i++ |
مقدار شمارنده را در هر تکرار تغییر میدهد |
۴-۳. نحوهٔ اجرا
حلقهٔ for به ترتیب زیر کار میکند:
- بخش مقدار اولیه یک بار اجرا میشود.
- شرط ادامه بررسی میشود.
- اگر شرط درست باشد، بدنهٔ حلقه اجرا میشود.
- پس از اجرای بدنه، بخش تغییر مقدار اجرا میشود.
- دوباره شرط بررسی میشود و این روند ادامه مییابد.
- اگر شرط نادرست باشد، حلقه پایان مییابد.
۴-۴. مثال اول: چاپ اعداد ۱ تا ۱۰
<?php
for ($i = 1; $i <= 10; $i++) {
echo $i . "<br>";
}
?>
خروجی:
1
2
3
4
5
6
7
8
9
10
توضیح اجرا:
- ابتدا
$i = 1قرار میگیرد. - شرط
$i <= 10بررسی میشود. چون درست است، بدنه اجرا میشود. - سپس
$i++اجرا میشود و مقدار$iبرابر ۲ میشود. - این روند تا زمانی ادامه مییابد که
$iبرابر ۱۱ شود. در این حالت شرط نادرست است و حلقه پایان مییابد.
۴-۵. مثال دوم: چاپ پنج بار سلام
<?php
for ($i = 1; $i <= 5; $i++) {
echo "سلام<br>";
}
?>
خروجی:
سلام
سلام
سلام
سلام
سلام
۴-۶. مثال سوم: محاسبهٔ مجموع اعداد ۱ تا ۱۰
<?php
$sum = 0;
for ($i = 1; $i <= 10; $i++) {
$sum = $sum + $i;
}
echo "مجموع اعداد ۱ تا ۱۰ برابر است با: " . $sum;
?>
خروجی:
مجموع اعداد ۱ تا ۱۰ برابر است با: 55
در این مثال:
- متغیر
$sumابتدا صفر است. - در هر تکرار، مقدار
$iبه$sumاضافه میشود. - پس از پایان حلقه، مقدار نهایی
$sumچاپ میشود.
۴-۷. مثال چهارم: چاپ اعداد زوج کمتر از ۲۰
<?php
for ($i = 2; $i < 20; $i = $i + 2) {
echo $i . "<br>";
}
?>
در این مثال، شمارنده هر بار دو واحد افزایش مییابد. بنابراین فقط اعداد زوج چاپ میشوند.
۴-۸. مثال پنجم: چاپ اعداد بهصورت نزولی
<?php
for ($i = 10; $i >= 1; $i--) {
echo $i . "<br>";
}
?>
خروجی:
10
9
8
7
6
5
4
3
2
1
در این مثال، شمارنده از ۱۰ شروع میشود و در هر تکرار یک واحد کاهش مییابد.
۴-۹. حلقهٔ بیپایان در for
اگر شرط حلقه هیچوقت نادرست نشود، حلقه بیپایان میشود. مثال زیر اشتباه است:
<?php
for ($i = 1; $i <= 5; $i--) {
echo "سلام<br>";
}
?>
در این کد، مقدار $i بهجای افزایش، کاهش مییابد. بنابراین شرط $i <= 5 همیشه درست میماند و حلقه پایان نمییابد.
نکتهٔ مهم: جهت تغییر شمارنده باید با شرط حلقه هماهنگ باشد.
۴-۱۰. اشتباههای رایج
| اشتباه | نتیجه |
|---|---|
| فراموش کردن نقطهویرگول بین سه بخش | خطای نحوی |
نوشتن $i-- به جای $i++ در حلقهٔ صعودی |
حلقهٔ بیپایان |
نوشتن شرط بهصورت $i < 10 به جای $i <= 10 |
چاپ نشدن عدد ۱۰ |
| فراموش کردن تغییر مقدار | حلقهٔ بیپایان |
قرار دادن نقطهویرگول بعد از پرانتز for |
بدنهٔ حلقه اجرا نمیشود |
۴-۱۱. مقایسهٔ for و while
| ویژگی | for |
while |
|---|---|---|
| تعداد تکرار | معمولاً مشخص است | ممکن است مشخص نباشد |
| محل نوشتن مقدار اولیه، شرط و تغییر | همه در یک خط | جدا از هم |
| خوانایی در تکرارهای شمارشی | بیشتر | کمتر |
| کاربرد اصلی | شمارش و تکرار با تعداد مشخص | تکرار تا رسیدن به یک شرط |
۴-۱۲. فعالیت کلاسی
- با حلقهٔ
forاعداد ۱ تا ۲۰ را چاپ کنید. - با حلقهٔ
forمجموع اعداد زوج بین ۱ تا ۲۰ را حساب کنید. - با حلقهٔ
forاعداد ۲۰ تا ۱ را بهصورت نزولی چاپ کنید. - با حلقهٔ
forجدول ضرب عدد ۵ را از ۱ تا ۱۰ چاپ کنید.
مطالعهٔ تکمیلی: در PHP میتوان در بخشهای مختلف حلقهٔ
forچند دستور را با کاما از هم جدا کرد. مثلاًfor ($i = 1, $j = 10; $i <= 10; $i++, $j--). این موضوع برای دانشآموزان الزامی نیست و فقط برای آشنایی بیشتر بیان میشود.