برخلاف جاوا و سایر زبانهای برنامهنویسی، کاتلین فاقد حلقۀ معمول 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 پیمایش کنیم.
بدون دیدگاه