Mohsen
Mohsen
خواندن ۱ دقیقه·۴ سال پیش

آشنایی با مفهوم حلقه‌ها در PHP - کار با حلقه FOR

درود؛ توی این آموزش میخوام بهتون مفهوم حلقه رو آموزش بدم. تا اینجای کار، با آرایه ها، دستورات شرطی، متغیرها و ثابتها آشنا شدید و با فرض اینکه مفاهیم قبلی رو یاد گرفتید آماده اید برا اینکه کار با حلقه ها هم یاد بگیرید.

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

بهترین راه آموزش، همیشه مثال زدنه؛ پس با یه مثال شروع میکنم.

فرض کنید با برنامه نویسی میخواین عدد 1 تا 100 رو نمایش بدید. یه آدم تازه کار شروع میکنه برای هر عدد دونه دونه یه دونه دستور اکو مینویسه و عدد مورد نظرش هم جلوش میذاره به شکل زیر:

echo 1;
echo 2;
echo 3; ....

ولی خب بنظرتون این کار منطقیه؟ اگه گفتن تا 100هزار چی؟! برای یه تازه کار شاید آره، ولی برای ما نه!.

اینجاست که مفهوم حلقه به دادمون میرسه و همیشه اینو در نظر داشته باشید که:

هر وقت یک کار تکراری رو مجبورید انجام بدید فکرتون باید بره به سمت حلقه ها.

آشنایی با حلقه FOR

مثال بالا رو در نظر بگیرید. اگه ما بخوایم عدد 1 تا 100 رو نمایش بدیم باید به این شکل از حلقه فور استفاده کنیم:

for($index=1; $index <= 100; $index++)
echo $index;

پس اول کلمه کلیدی FOR رو مینویسیم و بعد () و توی پرانتز باز و بسته، یه متغیر به اسم ایندکس (یا هر اسم دلخواهی) تعریف میکنیم که مقدار اولیش رو گذاشتیم 1 و بعد سمی کالن. بعد از سِمی کالُن شرطمون رو تعریف کردیم و گفتیم این کار تا زمانی تکرار بشه که شرط برقراره؛ یعنی تا زمانی که عدد برسه به 100 و در نهایت دستور $index++ رو داریم که این معادل دستور $Index+1 هستش و به این معنیه که به ازای هر بار اجرای دستور چاپ عدد، بعدش یه دونه به مقدار قبلی اضافه کن. چون اگه این کار رو نکنیم حلقه به درستی اجرا نمیشه.

ترتیب اجرای حلقه FOR به این صورته:

حلقه سه تیکه داره. تیکه اول یعنی مقداردهی اولیه (index=1) بار اول و فقط به بار اجرا میشه؛ پس بار اول متغیر index مقدارش میشه 1.

بعد شرط جلوش بررسی میشه یعنی تیکه دوم؛ و چون 1 از 100 کوچیکتره میره 1 رو با دستور اکو چاپ میکنه و بعد برمیگرده تیکه سوم حلقه رو اجرا میکنه و 1 دونه اضافه میکنه به مقدار ایندکس فعلی، که مقدار ایندکس از 1 تبدیل میشه به 2.

از این لحظه به بعد، کامپایلر PHP که کدها رو تفسیر میکنه با بخش اول که کارش مقداردهی هست کاری نداره و هی مدام بخش 2 و 3 رو اجرا و میکنه و اینجا دیگه عملا داره حلقه اجرا میشه که در واقع کد میفته توی یه LOOP و یک تکرار.

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

بعد چاپ و اجرا، باز یه دونه اضافه میشه به ایندکس (اجرای قسمت سوم) که مقدار ایندکس میشه 3 و همینجور الی آخر تا برسه به 100. وقتی مقدار ایندکس شد 100 دوباره چاپ میشه و عدد بعدیش میشه 101 و اینجا توی چک کردن شرط حلقه، چون عدد کمتر و یا مساوی با 100 نیست، حلقه به پایان میرسه.

نتیجه اجرای کدهای بالا برای نمایش اعداد 1 تا 10
نتیجه اجرای کدهای بالا برای نمایش اعداد 1 تا 10

مثال دوم: ترکیب حلقه و شرط

خب حالا فرض کنید به ما گفتن اعداد زوج بین 1 تا 100 رو نمایش بدید. باید چیکار کنیم؟ بخش قبلی که چاپ و نمایش اعداد 1 تا 100 بود رو نوشتیم و آماده داریم؛ پس حالا کافیه بیایم یه شرط اضافه کنیم بهش که اعداد زوج رو تشخیص بده. عدد زوج به عددی میگن که به 2 بخش پذیر باشه؛ پس کدهای جدید به شکل زیر میشن:


for($index=1; $index <= 100; $index++){ if($index % 2 ==0)
echo $index; }

قبلا بهتون گفته بودم که از علامت % برای تشخیص باقیمانده یک تقسیم استفاده میشه و توی کد بالا چک میکنه که اگر عدد ایندکس تقسیم بر 2 باقیماندش 0 شد یعنی زوجه و نشونش میده و خروجیش میشه عددهای2 -4-6-8-10 و الی آخر تا 100.

کد بالا رو میتونین از طریق این آدرس تست کنید و نتیجه رو ببینید:

https://sandbox.onlinephpfunctions.com/


خب اینم از این و امیدوارم خوشتون اومده باشه و یاد گرفته باشیدش.


یه برنامه نویس وب که شدید علاقه داره به یادگیری بیشتر توی زمینه کاریش و مسائل مرتبط با آی.تی و تکنولوژی :))
شاید از این پست‌ها خوشتان بیاید