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

حلقه while ، یکی دیگر از انواع حلقه ها است که برای تکرار یک عملیات در چندین گام ، استفاده می شود.  روش کار این دستور  به این صورت است که براساس صحیح یا غلط بودن شرط، یک عملیات خاص را به تعداد مشخصی تکرار می کند. این عملیات که در داخل یک بلاک پس از دستور while قرار میگیرند، تا پایان بررسی تمامی متغیر شمارنده تکرار می شود. اگرچه استفاده از دستوراتی همچون break و continue می تواند از تکرار حلقه جلوگیری نماید.

در PHP حلقه های زیر وجود دارد:

  • while – تکرار اجرای قطعه کد حلقه تا زمانی که شرطی برقرار باشد
  • do….while – یکبار اجرای قطعه کد، سپس تکرار حلقه تا زمانی که شرط خاصی برقرار باشد
  • for – تکرار یک حلقه به دفعات از قبل مشخص
  • foreach – تکرار قطعه کد برای هر یک از عناصر یک آرایه

حلقه WHILE در PHP

حلقه while قطعه کد را تا صحیح بودن یک شرط حاص تکرار می کند. حلقه while به صورت زیر نوشته می شود:

while (condition is true) {
code to be executed;
}

مثال:

در مثال زیر ابتدا مقدار متغیر x$ به 1 ست می شود (1=x$ ). سپس حلقه while به اجرا ادامه می دهد تا زمانیکه متغیر x$ کمتر از یا مساوی با 5 باشد (5=>x$). در هر بار اجرای حلقه یک واحد به متغیر x$ اضافه می شود (++x$).

 

حلقه while تودرتو 

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

<?php
//مقادیر پیش فرض برای متغیر
$users = 5;
$admin = 1;
//حلقه while
while ($users > 0) {
    //حلقه تو در تو
    while ($admin > 0) {
        echo "مدیر سایت، خوش آمدید<br />";
        $admin--;
    }
    echo "کاربر شماره $users خوش آمدید<br />";
    $users--;
}
?>

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

دستورات braek و continue در حلقه while در php

از دستور break می توان برای پایان عملیات حلقه استفاده کرد. به نوعی می توان گفت که دستور break ادامه روند اجرای برنامه را قطع می کند و برنامه را از حلقه خارج می سازد. اما دستور continue برای پرش از گام فعلی به گام بعدی کاربرد دارد یعنی از حلقه خارج نمی شود و صرفا به یک گام جلوتر پرش کرده و عملیات حلقه ادامه می یابد. در ادامه نمونه ای از دستور break و continue را مشاهده می کنید:

$num = 10;

while(true) {
if($num == 4) {
$num--;
continue;
} elseif($num == 1) {
break;
}

if($num % 2 == 0) {
echo "$num: Even - زوج<br>";
} else {
echo "$num: Odd - فرد<br>";
}

$num--;
}

این قطعه کد برای بررسی زوج و فرد بودن اعداد دو تا ده است. همانطور که ملاحظه می کنید از دو دستور break و continue در آن استفاده شده است. دستور break به نوعی خاتمه دهنده حلقه while محسوب می شود و زمانی که متغیر به عدد یک رسید با این دستور عملیات تکرار حلقه متوقف می شود. خروجی این دستور به فرم زیر است.

۱۰: Even – زوج
۹: Odd – فرد
۸: Even – زوج
۷: Odd – فرد
۶: Even – زوج
۵: Odd – فرد
۳: Odd – فرد
۲: Even – زوج

بدون دیدگاه

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *