Kotlin Control Flow Statements
Estimated reading: 3 minutes 30 views

🔁 Kotlin – For Loop: Iterate Collections, Ranges & Arrays

🧲 Introduction – Why Learn Kotlin For Loops?

In Kotlin, the for loop is a powerful and concise way to iterate over collections, ranges, arrays, and strings. It eliminates boilerplate code found in traditional Java loops while adding readability and expressive power to Kotlin applications.

🎯 In this guide, you’ll learn:

  • How Kotlin for loop works with different data types
  • Looping through ranges, arrays, collections, and strings
  • Using indices, withIndex(), and step control
  • Real-world examples and best practices

🔁 Basic For Loop Over a Range

for (i in 1..5) {
    println("Count: $i")
}

🟢 Output:

Count: 1  
Count: 2  
Count: 3  
Count: 4  
Count: 5  
  • 1..5 defines a closed range from 1 to 5.
  • i is the loop variable.

🔢 Looping with Step, DownTo, and Until

🔹 step – Custom Increment

for (i in 1..10 step 2) {
    println(i)
}

🟢 Output: 1 3 5 7 9


🔹 downTo – Reverse Order

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

🟢 Output: 5 4 3 2 1


🔹 until – Exclusive Upper Bound

for (i in 0 until 5) {
    println(i)
}

🟢 Output: 0 1 2 3 4 (excludes 5)


📦 Iterating Through Arrays and Lists

🔹 Array Iteration

val nums = arrayOf(10, 20, 30)

for (n in nums) {
    println(n)
}

🔹 List Iteration

val names = listOf("Alice", "Bob", "Charlie")

for (name in names) {
    println("Hi $name")
}

🔠 Iterating Through a String

val text = "Kotlin"

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

🟢 Output: K o t l i n


🔢 Accessing Index with indices and withIndex()

🔹 Using indices:

val items = listOf("A", "B", "C")

for (i in items.indices) {
    println("Item at $i is ${items[i]}")
}

🔹 Using withIndex():

val items = listOf("X", "Y", "Z")

for ((index, value) in items.withIndex()) {
    println("Item #$index = $value")
}

🔁 Nested For Loops

for (i in 1..2) {
    for (j in 1..3) {
        println("i=$i, j=$j")
    }
}

🧠 Best Practices

TipWhy It Matters
Use withIndex() over manual indexingCleaner and safer
Use step and downTo for better controlSimplifies loop direction logic
Prefer for over while when range/collection is knownMore readable and idiomatic

🚫 Common Mistakes

❌ Mistake✅ Fix
Off-by-one with until or ..Remember .. includes end, until does not
Using Java-style loops unnecessarilyUse Kotlin idioms like for (item in list)
Ignoring index when neededUse withIndex() or indices

📌 Summary – Recap & Next Steps

Kotlin’s for loop is versatile and concise, supporting ranges, collections, and strings with clean syntax. It improves on Java’s loop constructs and promotes more readable and maintainable code.

🔍 Key Takeaways:

  • Use for (item in collection) for safe and clean iteration.
  • Use step, downTo, and until for control.
  • Access indices with indices or withIndex().
  • Prefer for when looping over known-size sequences.

⚙️ Practical Use:
Ideal for iterating API results, processing form inputs, looping UI elements, and data validation in Android or server-side Kotlin apps.


❓ FAQs – Kotlin For Loop

Can I loop in reverse in Kotlin?
✅ Yes. Use downTo:

for (i in 10 downTo 1) { ... }

What’s the difference between .. and until?
.. is inclusive, until excludes the upper bound:

1..5 → 1 2 3 4 5  
1 until 5 → 1 2 3 4

How do I get both index and value in a loop?
✅ Use withIndex():

for ((i, v) in list.withIndex()) { ... }

Can I use for to iterate over a map?
✅ Yes:

val map = mapOf("A" to 1, "B" to 2)
for ((key, value) in map) {
    println("$key -> $value")
}

Is for better than while in Kotlin?
✅ Use for when iterating over collections or ranges. Use while for unknown bounds or conditional loops.


Share Now :

Leave a Reply

Your email address will not be published. Required fields are marked *

Share

Kotlin – For Loop

Or Copy Link

CONTENTS
Scroll to Top