آموزش حلقه ها در برنامه نویسی R (با مثال+ با همه نکات)

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

زبان برنامه نویسی برای مدیریت الزامات حلقه؛ به انواع حلقه های زیر نیاز دارد. بر روی لینک های زیر کلیک کنید تا بتوانید جزئیات آنها را بررسی کنید.
| ردیف | نوع حلقه و توضیح آن |
| ۱ | حلقه تکرار
یک دنباله از دستورات را چندین بار اجرا می کند و کدی که متغیر حلقه را مدیریت می کند؛ مختصر و کوتاه می نماید. |
| ۲ | حلقه while
در حالی که شرط داده شده درست باشد؛ یک دستور یا گروهی از دستورات را تکرار می کند. قبل از اجرای بدنه ی حلقه؛ برقرار بودن شرط را آزمایش می کند. |
| ۳ | حلقه for
مانند یک دستور while می باشد؛ به استثنای این که؛ این حلقه شرایط را در انتهای حلقه بررسی می کند. |
دستورات کنترل حلقه
دستورات کنترل حلقه، اجرا را از توالی طبیعی آن تغییر می دهد هنگامی که اجرا، از یک محدوده خارج می شود؛ تمام اشیاء خودکار که در آن دامنه ایجاد شده اند از بین می روند.
زبان برنامه نویسی R از دستورات کنترلی زیر پشتیبانی می کند. برای بررسی جزئیات آنها می توانید روی لینکهای زیر کلیک کنید.
| ردیف | دستورات کنترلی و توضیح آنها |
| ۱ | دستور break
این فرمان؛ به دستور حلقه پایان می دهد و بلافاصله اجرا را به حلقه بعدی می برد. |
| ۲ | دستور Next
عبارت next؛ رفتار سوئیچ R را شبیه سازی می کند. |
توضیح به زبان ساده تر
در برنامهنویسی، گاهی نیاز داریم یک کار تکراری را دهها، صدها یا هزاران بار انجام دهیم. به جای اینکه یک کد را بارها و بارها کپی کنیم، از «حلقه» (Loop) استفاده میکنیم.
حلقه به زبان ساده به کامپیوتر میگوید: «این دستور خاص را بگیر و تا زمانی که من مشخص کردهام، آن را تکرار کن!»
در زبان برنامهنویسی R، ما سه نوع حلقه اصلی داریم که کاربرد دو مورد از آنها بسیار بیشتر است. بیایید آنها را به زبان ساده بررسی کنیم:
۱. حلقه for (زمانی که تعداد تکرار را میدانیم)
حلقه For پرکاربردترین حلقه در R است. از این حلقه زمانی استفاده میکنیم که دقیقاً میدانیم میخواهیم کارمان چند بار تکرار شود (مثلاً میخواهیم روی یک لیست ۵ تایی از اعداد حرکت کنیم).
ساختار ساده: «برای هر آیتم در این لیست، این کار را انجام بده.»
مثال:میخواهیم اعداد ۱ تا ۵ را چاپ کنیم.
for (i in 1:5) { print(i)}چه اتفاقی میافتد؟
-
حرف
iدر اینجا مثل یک شمارنده یا نماینده است. -
کامپیوتر میبیند که باید از عدد ۱ تا ۵ حرکت کند (
1:5). -
در دور اول،
iعدد ۱ را میگیرد و چاپ میشود. در دور دومiعدد ۲ را میگیرد و چاپ میشود... و این کار تا عدد ۵ ادامه پیدا میکند و سپس حلقه تمام میشود.
۲. حلقه while (تکرار بر اساس یک شرط)
کلمه While در انگلیسی یعنی «تا زمانی که». از این حلقه وقتی استفاده میکنیم که تعداد دفعات تکرار برایمان مشخص نیست، اما میخواهیم کد ما تا زمانی که یک شرط خاص درست است، تکرار شود.
ساختار ساده: «تا زمانی که این قانون برقرار است، این کار را تکرار کن.»
مثال:میخواهیم از عدد ۱ شروع کنیم و تا زمانی که عدد از ۵ کوچکتر یا مساوی است، آن را چاپ کنیم.
1while (x <= 5) { print(x) x <- x + 1}چه اتفاقی میافتد؟
-
ابتدا به متغیر
xمقدار ۱ را میدهیم. -
حلقه چک میکند: آیا ۱ از ۵ کوچکتر است؟ بله. پس عدد ۱ را چاپ میکند.
-
نکته بسیار مهم: خط
x <- x + 1یک واحد بهxاضافه میکند (یعنیxحالا ۲ میشود). اگر این خط را ننویسید،xهمیشه ۱ میماند و حلقه شما تا ابد گیر میکند (Infinite Loop)! -
حلقه دوباره به بالا برمیگردد و شرط را با عدد ۲ چک میکند و این روند تا زمانی که
xبه عدد ۶ برسد ادامه دارد؛ در آنجا شرط غلط میشود و حلقه میشکند.
۳. حلقه repeat (تکرار بینهایت)
این حلقه کمترین کاربرد را برای مبتدیان دارد. حلقه repeat هیچ شرطی برای توقف ندارد و کدها را تا بینهایت تکرار میکند، مگر اینکه شما در داخل آن از یک ترمز دستی به نام دستور break استفاده کنید. مثال:
x <- 1repeat { print(x) x <- x + 1 if (x > 5) { break # ترمز دستی! اگر ایکس از ۵ بزرگتر شد، حلقه را بشکن }}خلاصه و نتیجهگیری
-
حلقه
for: وقتی که لیستی از دادهها دارید یا تعداد تکرار را دقیقاً میدانید. -
حلقه
while: وقتی تعداد تکرار را نمیدانید و میخواهید کار تا زمانِ رسیدن به یک هدف (شرط) ادامه یابد. -
دستور
break: هر جا در هر حلقهای بخواهید عملیات را فوراً متوقف کنید و بیرون بپرید، از این کلمه استفاده میکنید.

در R زیر برنامه ای را بگو که با نشان دادن سه ضلع a و b و c نشان دهد مثلث است ؟
پاسخ