حلقه ها در کاتلین یکی از مفاهیم بنیادی و پرکاربرد هستند که به برنامهنویسان این امکان را میدهند تا مجموعهای از دستورات را چندین بار اجرا کنند. حلقه ها در برنامه نویسی کاتلین (Kotlin Loops)، مانند بسیاری از زبانهای دیگر، نقش کلیدی در کنترل جریان اجرای برنامه دارند. با استفاده از انواع مختلف حلقه در کاتلین میتوان عملیات تکراری را به شکلی ساده و خوانا پیادهسازی کرد. در این از سایت آموزش برنامه نویسی الکامکو همراه ما باشید تا با ساختار و کاربردهای مختلف حلقه ها در زبان برنامه نویسی کاتلین آشنا شویم و مثالهایی کاربردی برای درک بهتر این مفهوم ارائه دهیم.
دو نوع حلقه اصلی در کاتلین وجود دارد:
۱- حلقه ها در برنامه نویسی کاتلین – حلقه for:
حلقه for در کاتلین برای تکرار یک بلوک کد تا زمانی که یک شرط خاص برقرار باشد استفاده میشود. این حلقه برای پیمایش در مجموعهها، مانند لیستها و آرایهها، بسیار مفید است.
ساختار کلی حلقه for:
for (متغیر in مجموعه) {
// بلوک کد
}
در این ساختار:
متغیرنام متغیری است که برای هر عنصر در مجموعه مقدار دهی میشود.مجموعهمجموعهای است که میخواهیم در آن پیمایش کنیم.بلوک کددستوراتی است که برای هر عنصر در مجموعه اجرا میشود.
مثال:
فرض کنید میخواهیم لیستی از اعداد را با حلقه for در کاتلین چاپ کنیم:
val numbers = listOf(1, 2, 3, 4, 5)
for (number in numbers) {
println(number)
}
۲. حلقه ها در برنامه نویسی کاتلین – حلقه while:
حلقه while یک حلقه کنترلی در برنامهنویسی کاتلین است که به شما امکان میدهد یک بلوک کد را تا زمانی که یک شرط خاص برقرار باشد، به طور مکرر اجرا کنید.
ساختار پایه یک حلقه while به صورت زیر است:
while (شرط) {
// کدهایی که باید تکرار شوند
}
در این ساختار، شرط یک عبارت بولی است که قبل از هر بار اجرای کد داخل بلوک حلقه ارزیابی میشود. اگر شرط درست (true) باشد، کد داخل بلوک اجرا میشود و سپس شرط دوباره بررسی میشود. این فرآیند تا زمانی که شرط نادرست (false) شود، ادامه مییابد.
در اینجا چند نکته کلیدی در مورد حلقههای while در کاتلین وجود دارد:
- شرط باید همیشه یک مقدار بولی برگرداند. اگر شرط مقدار غیر بولی برگرداند، ممکن است خطا یا رفتار غیرمنتظرهای رخ دهد.
- باید راهی برای تغییر شرط در داخل بلوک حلقه وجود داشته باشد. در غیر این صورت، حلقه برای همیشه اجرا میشود. این کار معمولاً با به روز رسانی متغیری که در شرط استفاده میشود، انجام میشود.
- حلقههای while میتوانند برای اجرای تعداد نامحدود تکرارات یا تعداد مشخصی از تکرارات استفاده شوند.
پیشنهاد خرید: دوره ساخت اپلیکیشن فروشگاهی اندروید با کاتلین و معماری MVVM
مثالهایی از حلقههای while در کاتلین
در اینجا چند مثال از نحوه استفاده از حلقههای while در کاتلین آورده شده است:
مثال ۱: چاپ اعداد از ۱ تا ۱۰
var i = 1
while (i <= 10) {
println(i)
i++
}
این کد اعداد ۱ تا ۱۰ را به صورت خطی چاپ میکند.
مثال ۲: جمع اعداد ۱ تا ۱۰۰
var sum = 0
var i = 1
while (i <= 100) {
sum += i
i++
}
println(“مجموع اعداد ۱ تا ۱۰۰ برابر با $sum است”)
این کد اعداد ۱ تا ۱۰۰ را با هم جمع میکند و نتیجه را چاپ میکند.
مثال ۳: بررسی صحت ورودی کاربر
var input: String?
do {
print(“یک عدد صحیح وارد کنید: “)
input = readLine()
} while (input == null || !input.toIntOrNull().isFinite())
val number = input!!.toInt()
println(“شما عدد $number را وارد کردید”)
این کد از کاربر میخواهد یک عدد صحیح وارد کند. تا زمانی که کاربر ورودی صحیحی وارد نکند، کد دوباره اجرا میشود.
همچنین بخوانید» چگونه برنامه نویسی را یاد بگیریم؟
۳. تفاوت حلقه while و do-while در کاتلین
حلقههای do-while شبیه به حلقههای while هستند، با این تفاوت که کد داخل بلوک حلقه حداقل یک بار قبل از بررسی شرط اجرا میشود.
ساختار پایه یک حلقه do-while به صورت زیر است:
do {
// کدهایی که باید تکرار شوند
} while (شرط);
در این مثال، کد داخل بلوک حلقه حداقل یک بار اجرا میشود، حتی اگر شرط در ابتدا نادرست (false) باشد.
از حلقههای do-while معمولاً در شرایطی استفاده میشود که میخواهید اطمینان حاصل کنید که کد داخل بلوک حلقه حداقل یک بار اجرا میشود، حتی اگر شرط نادرست باشد.
۴. حلقه ها در کاتلین – حلقه forEach:
حلقه forEach در کاتلین روشی ساده و مختصر برای پیمایش در عناصر یک مجموعه و اجرای کد برای هر عنصر ارائه میدهد. این حلقه نیازی به استفاده از متغیر شمارنده یا شرط ندارد و به طور خودکار از هر عنصر در مجموعه عبور میکند.
ساختار پایه حلقه forEach به صورت زیر است:
مجموعه.forEach { عنصر ->
// کدهایی که باید برای هر عنصر اجرا شوند }
در این ساختار، مجموعه نام مجموعهای است که میخواهید روی آن پیمایش کنید. عنصر یک متغیر موقت است که در هر بار تکرار به مقدار عنصر فعلی مجموعه اختصاص مییابد.
در داخل بلوک کد، میتوانید هر گونه عملیاتی را که میخواهید روی عنصر انجام دهید، مانند چاپ، تغییر یا حذف آن، انجام دهید.
مثالهایی از حلقه forEach در کاتلین
در اینجا چند مثال از نحوه استفاده از حلقههای forEach در کاتلین آورده شده است:
مثال ۱: چاپ اعداد ۱ تا ۱۰
val numbers = listOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
numbers.forEach { number ->
println(number)
}
این کد اعداد ۱ تا ۱۰ را در لیست numbers دو برابر میکند و سپس لیست را چاپ میکند.
مثال ۳: بررسی زوج یا فرد بودن اعداد ۱ تا ۱۰
این کد نوع (زوج یا فرد بودن) اعداد ۱ تا ۱۰ را چاپ میکند.
۵. حلقه ها در کاتلین – دستور break در کاتلین
دستور break در کاتلین برای خروج از یک حلقه for، while یا do-while در هر نقطه دلخواه استفاده میشود.
هنگامی که دستور break اجرا میشود، پیمایش در حلقه بلافاصله متوقف میشود و کنترل برنامه به بعد از بلوک حلقه منتقل میشود.
نحو استفاده از دستور break
ساختار کلی دستور break به صورت زیر است:
break@label
مثالهایی از استفاده از دستور break
در اینجا چند مثال از نحوه استفاده از دستور break در کاتلین آورده شده است:
مثال ۱: خروج از حلقه for پس از یافتن عدد خاص
val numbers = listOf(1, 5, 3, 4, 2)
for (number in numbers) {
if (number == 5) {
break
}
println(number)
}
این کد لیست numbers را پیمایش میکند و اعداد را چاپ میکند. اگر عدد ۵ پیدا شود، حلقه با استفاده از دستور break متوقف میشود و اعداد باقیمانده چاپ نمیشوند.
مثال ۲: خروج از حلقههای nested با استفاده از برچسب
loop@ for (i in 1..10) {
for (j in 1..10) {
if (i + j == 15) {
break@loop
}
}
}
println(“حلقهها با i = ${i} و j = ${j} متوقف شدند”)
var i = 0
while (i < 10) {
i++
if (i == 5) {
break
}
println(i)
}
println(“حلقه while با i = $i متوقف شد”)
این کد یک حلقه while را اجرا میکند تا زمانی که i به ۱۰ برسد. اگر i برابر با ۵ باشد، حلقه با استفاده از دستور break متوقف میشود.
نکاتی در مورد استفاده از دستور break
- استفاده از دستور
breakفقط در داخل حلقهها مجاز است. - اگر از برچسب استفاده میکنید، باید آن را درست قبل از دستور
breakقرار دهید. - استفاده بیش از حد از دستور
breakمیتواند کد شما را غیرقابل خواندن و اشکالزدایی را دشوار کند. از آن فقط در شرایط ضروری استفاده کنید.
جایگزینهای دستور break
در برخی موارد، میتوانید به جای دستور break از راهکارهای دیگر مانند دستور continue یا ساختارهای کنترلی مانند if-else استفاده کنید.
- دستور
continueباعث میشود دور فعلی حلقه پرش شود و به دور بعدی برود. - ساختارهای
if-elseبه شما امکان میدهند کنترل جریان برنامه را به طور مشروط مدیریت کنید.
انتخاب بهترین راهکار به نیاز خاص شما بستگی دارد.
همچنین بخوانید» فلاتر یا کاتلین | جاوا یا کاتلین | پایتون یا کاتلین
۶- حلقه ها در کاتلین – دستور continue در کاتلین
دستور continue در کاتلین برای پرش از دور فعلی یک حلقه for، while یا do-while و ادامه به دور بعدی استفاده میشود.
هنگامی که دستور continue اجرا میشود، باقیمانده دستورات در دور فعلی حلقه اجرا نمیشود و کنترل برنامه به طور مستقیم به ابتدای دور بعدی منتقل میشود.
نحو استفاده از دستور continue
ساختار کلی دستور continue به صورت زیر است:
continue@label
مثالهایی از استفاده از دستور continue
در اینجا چند مثال از نحوه استفاده از دستور continue در کاتلین آورده شده است:
مثال ۱: چاپ اعداد زوج از ۱ تا ۱۰
continue@label
این کد دو حلقه for nested را برای اعداد ۱ تا ۵ و ۱ تا ۳ اجرا میکند. اگر i برابر با ۳ و j برابر با ۲ باشد، از هر دو حلقه با استفاده از دستور continue و برچسب loop عبور میشود.
مثال ۳: استفاده از دستور continue با شرط خاص
var sum = 0
var i = 0
while (i < 10) {
i++
if (i == 5) {
continue
}
sum += i
println(“مجموع تاکنون: $sum”)
}
println(“مجموع نهایی: $sum”)
نکاتی در مورد استفاده از دستور continue
- استفاده از دستور
continueفقط در داخل حلقهها مجاز است. - اگر از برچسب استفاده میکنید، باید آن را درست قبل از دستور
continueقرار دهید. - استفاده بیش از حد از دستور
continueمیتواند کد شما را غیرقابل خواندن و اشکالزدایی را دشوار کند. از آن فقط در شرایط ضروری استفاده کنید.
جایگزینهای دستور continue
در برخی موارد، میتوانید به جای دستور continue از راهکارهای دیگر مانند ساختارهای کنترلی مانند if-else استفاده کنید.
- ساختارهای
if-elseبه شما امکان میدهند کنترل جریان برنامه را به طور مشروط مدیریت کنید و از اجرای دستورات غیرضروری جلوگیری کنید.
انتخاب بهترین راهکار به نیاز خاص شما بستگی دارد.
همچنین بخوانید» انواع متغییرها در کاتلین | انواع داده ها در کاتلین
نکاتی در مورد استفاده از حلقهها در کاتلین:
- از حلقهها برای تکرار وظایف تکراری استفاده کنید.
- از حلقه for برای تکرار تعداد مشخصی از دفعات استفاده کنید.
- از حلقه while برای تکرار تا زمانی که یک شرط خاص برقرار باشد استفاده کنید.
- از حلقه forEach برای پیمایش در عناصر یک لیست یا مجموعه استفاده کنید.
- از حلقه do-while برای اجرای دستورات حداقل یک بار استفاده کنید.
- از حلقه break برای خروج از یک حلقه در هر نقطه دلخواه استفاده کنید.
- از حلقه continue برای رفتن به تکرار بعدی حلقه بدون اجرای بقیه دستورات در آن تکرار استفاده کنید.
همچنین بخوانید: آموزش اندروید استودیو از صفر تا صد
سوالات متداول پیرامون حلقه کاتلین
-
آیا یادگیری حلقهها برای برنامهنویسی اندروید با کاتلین ضروری است؟
بله، حلقهها یکی از پایهایترین مفاهیم برنامهنویسی هستند و در بسیاری از پروژههای اندرویدی به آنها نیاز پیدا خواهید کرد.
-
آیا در توسعه اپلیکیشنهای اندرویدی با کاتلین هم از حلقهها استفاده میشود؟
بله، حلقهها در اپلیکیشنهای اندرویدی بسیار کاربرد دارند؛ مثلاً برای خواندن دادهها از دیتابیس، نمایش لیستها یا اجرای دستوراتی بر اساس ورودی کاربر.
-
اگر حلقهها را بلد نباشم، میتوانم برنامهنویسی را ادامه دهم؟
ممکن است در ابتدا با کپی کردن کدها جلو بروید، اما خیلی زود متوجه میشوید که بدون درک درست از حلقهها نمیتوانید مشکلات واقعی را حل کنید. یادگیری این مفهوم حیاتی است.
-
آیا یادگیری حلقهها در دوره آموزش کاتلین الکامکو پوشش داده شده است؟
بله، در دوره جامع آموزش کاتلین الکامکو تمام مفاهیم مربوط به حلقهها بهصورت کامل، کاربردی و همراه با مثالهای عملی آموزش داده شدهاند.
-
چقدر طول میکشد تا حلقه ها در کاتلین را یاد بگیرم؟
اگر روزانه کمی وقت بگذارید و با مثال تمرین کنید، معمولاً در یکی دو روز میتوانید به درک خوبی از حلقه ها در کاتلین برسید و آنها را در پروژههای خود استفاده کنید.
نتیجه گیری
همانطور که دیدید، حلقه ها در زبان برنامه نویسی کاتلین ابزاری قدرتمند برای اجرای دستورات تکراری هستند و استفادهی درست از آنها تأثیر مستقیمی بر کیفیت کد دارد. درک صحیح از عملکرد حلقهها، به شما در توسعهی نرمافزارهای بهینه و قابل نگهداری کمک میکند. اگر مایلید این مفاهیم را عمیقتر یاد بگیرید و در کنار آن، دیگر بخشهای مهم کاتلین را نیز فرا بگیرید، دوره جامع آموزش کاتلین الکامکو بهترین انتخاب برای شماست. با تهیه این دوره، قدمی جدی در مسیر حرفهای شدن در دنیای توسعه اندروید بردارید.













































































































































































































































































































































































































حلقهها جزء اساسی برنامهنویسی هستند
مطلب خوبی درباره حلقه های کاتلین بود.
تشکر