در این بخش از مقاله آموزش کاتلین با حلقه for در این زبان برنامهنویسی آشنا خواهیم شد. حلقه for در کاتلین برای تکرار یک قطعه کد به تعداد مشخصی دفعه استفاده میشود.
برخلاف جاوا و دیگر زبانهای رایج برنامهنویسی، هیچ حلقه for در کاتلین به طور سنتی وجود ندارد. بلکه در کاتلین حلقه for برای تکرار روی بازهها، آرایهها، map-ها و مواردی از این دست استفاده میشود. در واقع حلقه for روی هر چیزی که یک «تکرارکننده» (iterator) داشته باشد اجرا میشود. ساختار حلقه for در کاتلین به صورت زیر است:
for (item in collection) { // body of loop
}
مثالی از تکرار روی یک بازه
fun main(args: Array<String>) {
for (i in 1..5) { println(i) }
}
در کد فوق، حلقه for روی یک بازه تکرار میکند و همه آیتمهای منفرد را پرینت میگیرد. خروجی برنامه فوق به صورت زیر است:
1 2 3 4 5
اگر بدنه حلقه مانند مثال فوق، شامل تنها یک گزاره باشد، لزومی به استفاده از آکولاد {} نیست.
fun main(args: Array<String>) { for (i in 1..5) println(i)
}
امکان تکرار روی یک بازه با استفاده از حلقه for به این جهت فراهم آمده است که بازهها یک «تکرارکننده» (iterator) ارائه میکنند. در خصوص تکرارکنندهها در ادامه این مقاله مطالب بیشتری ارائه شده است.
مثالی از روشهای مختلف تکرار روی یک بازه
fun main(args: Array<String>) {
print("for (i in 1..5) print(i) = ") for (i in 1..5) print(i)
println()
print("for (i in 5..1) print(i) = ") for (i in 5..1) print(i) // prints nothing
println()
print("for (i in 5 downTo 1) print(i) = ") for (i in 5 downTo 1) print(i)
println()
print("for (i in 1..4 step 2) print(i) = ") for (i in 1..5 step 2) print(i)
println()
print("for (i in 4 downTo 1 step 2) print(i) = ") for (i in 5 downTo 1 step 2) print(i)
}
خروجی برنامه فوق به صورت زیر است:
for (i in 1..5) print(i) = 12345 for (i in 5..1) print(i) = for (i in 5 downTo 1) print(i) = 54321 for (i in 1..4 step 2) print(i) = 135 for (i in 4 downTo 1 step 2) print(i) = 531
تکرار روی یک آرایه
در این بخش مثالی از تکرار روی یک آرایه String را بررسی میکنیم:
fun main(args: Array<String>) {
var language = arrayOf("Ruby", "Koltin", "Python" "Java")
for (item in language) println(item)
}
خروجی کد فوق به صورت زیر است:
Ruby Koltin Python Java
امکان تکرار روی یک آرایه با استفاده از اندیس وجود دارد. به مثال زیر توجه کنید:
fun main(args: Array<String>) {
var language = arrayOf("Ruby", "Koltin", "Python", "Java")
for (item in language.indices) {
// printing array elements having even index only if (item%2 == 0) println(language[item]) }
}
خروجی برنامه فوق به صورت زیر است:
Ruby Python
اگر میخواهید در این خصوص اطلاعات بیشتری کسب کنید به بخش «آرایههای کاتلین» (+) مراجعه کنید.
تکرار روی یک رشته
در این بخش مثالی از تکرار روی یک String ارائه شده است.
fun main(args: Array<String>) {
var text= "Kotlin"
for (letter in text) { println(letter) }
}
خروجی کد فوق به صورت زیر است:
K o t l i n
امکان تکرار روی یک String با استفاده از اندیس و به روشی مشابه آرایهها وجود دارد. به مثال زیر توجه کنید:
fun main(args: Array<String>) {
var text= "Kotlin"
for (item in text.indices) { println(text[item]) }
}
خروجی کد فوق به صورت زیر است:
K o t l i n