آموزش زبان کاتلین – درس ۱۱ (حلقۀ for)

نویسنده : سید ایوب کوکبی ۱۴ آبان ۱۳۹۷

آموزش زبان کاتلین – درس 11 (حلقۀ for)

برخلاف جاوا و سایر زبان‌های برنامه‌نویسی، کاتلین فاقد حلقۀ معمول loop است. در واقع اینجا فقط برای محدوده‌ای از مقادیر، آرایه‌ها، map یا هر شی‌ای که iterator داشته باشد امکان استفاده از loop وجود دارد.

for (item in collection) {
// body of loop
}

 

پیمایش مقادیر یک محدوده یا Range

fun main(args: Array<String>) {

for (i in 1..5) {
println(i)
}
}

۵٫٫۱ به معنی محدوده مقادیر ۱ تا ۵ است و هر بار یک مقدار در خروجی چاپ می‌شود.

۱
۲
۳
۴
۵

 

همانند while در حلقۀ for نیز اگر فقط یک دستور در بدنۀ آن وجود داشته باشد می‌توان آکولادها را حذف کرد؛ به این صورت:

fun main(args: Array<String>) {
for (i in 1..5) println(i)
}

 

ما در داخل range یا محدوده مقادیر می‌توانیم حرکت کنیم به این خاطر که iterator را پیاده‌سازی کرده‌اند. دربارۀ 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

 

بخوانید  قسمت اول :معرفی بخش های اندروید استودیو

پیمایش مقادیر یک آرایه

در مثال پایین آرایه‌ای از رشته‌ها پیمایش شده است:

fun main(args: Array<String>) {

var language = arrayOf(“Ruby”, “Koltin”, “Python” “Java”)

for (item in language)
println(item)
}

 

خروجی:

fun main(args: Array<String>) {

var language = arrayOf(“Ruby”, “Koltin”, “Python” “Java”)

for (item in language)
println(item)
}

 

به کمک index نیز می‌توان داخل یک آرایه حرکت کرد. برای مثال:

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

 

آرایه نیز موضوع درس‌های بعدی است. عجله نکنید.

پیمایش یک رشته در کاتلین

fun main(args: Array<String>) {

var text= “Kotlin”

for (letter in text) {
println(letter)
}
}

 

خروجی:

K
o
t
l
i
n

 

مثل آرایه می‌توانید به عناصر یک رشته توسط index دسترسی داشته باشید. یک رشته مجموعه‌ای از کاراکترها است که هر کدام ایندکس مختص خود را دارد (از سمت چپ با شمارۀ صفر شروع می‌شود):

K
o
t
l
i
n

در درس map خواهیم گفت که چگونه بین عناصر آن توسط حلقۀ loop پیمایش کنیم.

سید ایوب کوکبی

نویسنده و مترجم...

0 دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *