بخش دوم: حلقهٔ while

۲-۱. تعریف

حلقهٔ while یک قطعه کد را تا زمانی که شرط آن درست باشد تکرار میکند. اگر شرط از ابتدا نادرست باشد، بدنهٔ حلقه حتی یک بار هم اجرا نمیشود.

۲-۲. ساختار

<?php
while (شرط) {
    // دستوراتی که باید تکرار شوند
}
?>

اجزای این ساختار:

  1. کلمهٔ کلیدی while
  2. شرط داخل پرانتز
  3. بدنهٔ حلقه داخل آکولاد { }

۲-۳. نحوهٔ اجرا

حلقهٔ while به ترتیب زیر کار میکند:

  1. شرط بررسی میشود.
  2. اگر شرط درست (true) باشد، بدنهٔ حلقه اجرا میشود.
  3. پس از اجرای بدنه، دوباره به ابتدا برمیگردد و شرط را بررسی میکند.
  4. اگر شرط نادرست (false) باشد، حلقه پایان مییابد و اجرای برنامه ادامه پیدا میکند.

۲-۴. مثال اول: چاپ پنج بار سلام

<?php
$i = 1;                 // مقدار اولیه
while ($i <= 5) {       // شرط ادامه
    echo "سلام<br>";
    $i++;               // تغییر مقدار
}
?>

خروجی:

سلام
سلام
سلام
سلام
سلام

توضیح اجرا:

  • ابتدا مقدار $i برابر ۱ است.
  • شرط $i <= 5 درست است، پس بدنه اجرا میشود.
  • با دستور $i++ مقدار $i یک واحد زیاد میشود.
  • این روند تا زمانی ادامه مییابد که $i برابر ۶ شود. در این حالت شرط نادرست است و حلقه پایان مییابد.

۲-۵. مثال دوم: چاپ اعداد ۱ تا ۱۰

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

خروجی:

1
2
3
4
5
6
7
8
9
10

۲-۶. مثال سوم: محاسبهٔ مجموع اعداد ۱ تا ۱۰

<?php
$i = 1;
$sum = 0;

while ($i <= 10) {
    $sum = $sum + $i;
    $i++;
}

echo "مجموع اعداد ۱ تا ۱۰ برابر است با: " . $sum;
?>

خروجی:

مجموع اعداد ۱ تا ۱۰ برابر است با: 55

در این مثال:

  • متغیر $sum مقدار جمع را نگه میدارد و ابتدا صفر است.
  • در هر تکرار، مقدار $i به $sum اضافه میشود.
  • سپس $i یک واحد افزایش مییابد.

۲-۷. مثال چهارم: چاپ اعداد زوج کمتر از ۲۰

<?php
$i = 2;
while ($i < 20) {
    echo $i . "<br>";
    $i = $i + 2;
}
?>

در این مثال، شمارنده هر بار دو واحد افزایش مییابد. بنابراین فقط اعداد زوج چاپ میشوند.

۲-۸. حلقهٔ بیپایان

اگر شرط حلقه هیچوقت نادرست نشود، حلقه بیپایان میشود. مثال زیر اشتباه است:

<?php
$i = 1;
while ($i <= 5) {
    echo "سلام<br>";
}
?>

در این کد، مقدار $i هیچوقت تغییر نمیکند. بنابراین شرط همیشه درست است و حلقه پایان نمییابد.

نکتهٔ مهم: در حلقهٔ while باید حتماً دستوری وجود داشته باشد که مقدار متغیر شرط را تغییر دهد.

۲-۹. اشتباههای رایج

اشتباه نتیجه
فراموش کردن افزایش شمارنده حلقهٔ بیپایان
نوشتن شرط بهصورت $i < 5 به جای $i <= 5 تعداد تکرار یک واحد کمتر میشود
قرار دادن $i++ بیرون از بدنهٔ حلقه حلقهٔ بیپایان
تعریف نکردن مقدار اولیه برای $i خطا یا رفتار نامشخص

۲-۱۰. مقایسهٔ کوتاه با for

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

مطالعهٔ تکمیلی: در PHP میتوان شرط حلقه را با عملگرهای منطقی مانند && و || ترکیب کرد. مثلاً while ($i <= 10 && $sum < 50). این موضوع برای درک بهتر حلقهها مفید است، اما برای ادامهٔ درس الزامی نیست.

۲-۱۱. فعالیت کلاسی

  1. با حلقهٔ while اعداد ۱ تا ۲۰ را چاپ کنید.
  2. با حلقهٔ while مجموع اعداد زوج بین ۱ تا ۲۰ را حساب کنید.
  3. با حلقهٔ while اعداد ۱۰ تا ۱ را بهصورت نزولی چاپ کنید.