تعریف: برای تکرار یک عمل از حلقه استفاده میکنیم
به طور کلی سه نوع حلقه داریم. حلقه (loop) ها در کاتلین شامل for loop ، while loop و do-while loop است.
حلقه ی for
به دو روش میشه از حلقه ی for استفاده کرد.
روش foreach :
در کاتلین همه چیز object است دونستن این موضوع میتونه به درک بهتر حلقه ی for در کاتلین کمک کنه.
همین طور که گفتیم حلقه برای تکرار یک عمل مورد استفاده قرار میگیره روش foreach برای هر ابجکتی که تابع iterator براش تعریف شده باشه قابل استفاده است.
فرم کلی:
عضو MyClass است. با for به ترتیب element هایی که myClass داره رو صدا میزنیم.
توجه:
نکته: element یک اسم دلخواهه و هر اسمی میتونه باشه
مثال:
خوندن اعضای ارایه با استفاده از روش foreach.
مثال:
خوندن اعضای لیست با استفاده از روش foreach
در مثال بالا یک لیست داریم با چهارتا عضو. با استفاده از for اعضای list رو دونه دونه صدا میکنیم و در println نمایش میدیم.
روش index-based :
اگه با for بخوایم عمل تکرارو در محددوه ای از اعداد انجام بدیم به این روش index-based گفته میشه
مثال:
در مثال بالا برنامه اعداد 0 تا 99 رو نمایش میده. با هر تکرار یک واحد به index اضافه میشه تا به 100 برسه و حلقه متوقف بشه
حالا اگه بخوایم خود عدد 100 هم تو محدوده وجود داشته باشه مینویسیم:
حالا اگه بخوایم با هر تکرار بهجای یک واحد دو یا چند واحد به index اضافه بشه مینویسیم:
در مثال بالا با هر تکرار 4 واحد به index اضافه میشه و به ترتیب اعداد 0، 4، 8 و... رو تا رسیدن به 100 و متوقف شدن حلقه نمایش میده.
اگه بخوایم index از بیشترین اعدد شروع بشه تا به کمترین عدد محدوده برسه مینویسیم:
مثال بالا حلقه از 100 شروع میکنه و تا رسیدن index به 0 عمل تکرار رو انجام میده.نتیجه در نمونه ی بالا میشه نمایش اعداد از 100 تا 0.
مثال:
حاصل جمع اعداد از 0 تا 100.
مثال:
مثال زیر یک عدد رو از کاربر میگیره و فاکتوریل آن را حساب کرده و نمایش میده.
مثال:
استفاده از روش index-based برای خوندن اعضای یک آرایه با for-loop
میتونید با کمک تابع withIndex در آرایه اعضای ارایه رو صدا بزنید و همزمان index هر عضو در ارایه هم داشته باشید.
کلید واژه ی break و continue
این کلید واژه ها داخل حلقه مورد استفاده قرار میگیرن.
۱- کلید واژه ی break:
برای شکستن حلقه و جلو گیری از ادامه ی تکرار استفاده میشه
مثال
۲-کلید واژه ی continue:
برای جلو گیری از اجرای بقیه کد ها در داخل حلقه استفاده میشه
مثال:
حلقه ی while
حلقه ی while در کاتلین دارای دو بخشه:

۱- بررسی شرط (condition) برای تکرار حلقه
۲- بدنه ی حلقه و اجرای کد های داخل آن پس از برقرار بودن شرط در هر تکرار
مثال:
در مثال زیر برنامه یک عدد بین 0 تا 10 به صورت تصادفی ایجاد میکنه و کاربر باید عدد رو حدس بزنه در این مثال از کلید واژه ی break استفاده شده.
در داخل حلقه به بررسی جواب میپردازیم اگر جواب برابر با عدد ساخته شده بود تکرار رو متوقف میکنه و از حلقه خارج میشه. اگه جواب بزرگتر از عدد ساخته شده بود پیغام بزرگ بودن مقدار پاسخ نمایش میده و کاربر دوباره باید پاسخ بده. گه جواب کوچیکتر بود پیغام کوچیکتر بودن مقدار پاسخ میده و کاربر باید دوباره پاسخ بده.
حلقه ی do while
حلقه ی do while در کاتلین مثل while است با این تفاوت که ابتدا کد های داخل بدنه ی حلقه اجرا میشن بعد شرط ادامه ی حلقه بررسی میشه.
مثال:
در برنامه ی زیر کاربر عدد رو وارد میکنه و پس از وارد کردن اعداد دلخواه با صفر از حلقه خارج میشه و برنامه حاصل جمع اعداد وارد شده رو نشون میده.
حلقه های تو در تو (nested loops)
اگه بخوایم داخل یک حلقه، حلقه ی دیگه ای استفاده کنیم ازش به عنوان حلقه های تو در تو یاد میکنیم.
مثال:
با هر تکرار حلقه ی بیرونی (i) حلقه ی داخلی (j) یک بار کامل از 0 تا 99 اجرا میشه و این موضوع درباره ی تمام حلقه ها صدق میکنه. میتونیم بهجای for از هر حلقه ای که خواستیم استفاده کنیم.
خلاصه
سه نوع حلقه داریم for، while، do while
تمام حلقه ها برای متوقف شدن نیاز به شرط دارن اما حلقه ی for در کاتلین شرط به صورت آشکار تعریف نمیشه
حلقه ی for در کاتلین به دو روش foreach و index-based میتونه پیادهسازی بشه
برای متوقف شدن حلقه ی while و do-while آشکارا باید شرط تعریف کنیم
حلقه ی do-while در کاتلین ابتدا کد های داخل بدنه اجرا میشه سپس شرط ادامه ی حلقه بررسی میشه
میتونیم داخل یک حلقه، حلقه ی دیگه ای استفاده کنیم که بهش میگیم حلقه های تو در تو (nested loops)
خب اینم از بحث حلقه ها در کاتلین!
بد نیست یه سری به وبسایت رسمی کاتلین درباره این موضوع بزنید. لینکش تو مطالب مرتبط هست.
موفق باشید.