0Pricing
Kotlin Academy · Lesson

Ranges in Loops

Iterate cleanly.

Ranges in Loops is a free Kotlin Academy lesson on CoddyKit — lesson 3 of 4. You can read the complete lesson below for free — then practise it hands-on in the browser with a built-in code editor and a 24/7 AI tutor. It is part of the Kotlin Academy learning path, one of 4 lessons in the course, and your progress syncs across the web and the CoddyKit app.

Ranges Power Loops

Ranges and progressions are the natural way to drive for loops in Kotlin.

There is no classic C-style for(i=0; i<n; i++); you iterate over a range instead.

Basic Counting Loop

Loop over an inclusive range to count from a start to an end.

The variable takes each value in turn.

fun main() {
    for (i in 1..5) {
        print(i.toString() + " ")
    }
    println()
}

Exclusive Loops with until

For zero-based counting, until stops one short of the bound.

This is the standard way to loop over a known count.

fun main() {
    for (i in 0 until 4) {
        print(i.toString() + " ")
    }
    println()
}

Looping by Index

Use indices to loop over the valid positions of a collection.

It is shorthand for 0 until size.

fun main() {
    val items = listOf("x", "y", "z")
    for (i in items.indices) {
        println(i.toString() + " -> " + items[i])
    }
}

Counting Down

Combine downTo with a loop to count backward, perfect for countdowns.

fun main() {
    for (i in 5 downTo 1) {
        print(i.toString() + " ")
    }
    println("liftoff")
}

Stepping Through

Add step to iterate with a custom increment, like every other value.

fun main() {
    for (i in 0..20 step 5) {
        print(i.toString() + " ")
    }
    println()
}

Looping over Characters

Char ranges let you loop through letters or digits directly.

fun main() {
    for (c in 'a'..'e') {
        print(c)
    }
    println()
}

withIndex for Value and Position

When you need both the index and the element, withIndex pairs them.

Destructure the pair right in the loop header.

fun main() {
    val items = listOf("a", "b", "c")
    for ((index, value) in items.withIndex()) {
        println(index.toString() + ": " + value)
    }
}

Nested Range Loops

Nest loops over ranges to build grids or tables.

Each combination of the two variables is visited.

fun main() {
    for (row in 1..3) {
        for (col in 1..3) {
            print((row * col).toString() + "\t")
        }
        println()
    }
}

Accumulating in a Loop

A range loop is great for accumulating a result, like a running sum.

fun main() {
    var sum = 0
    for (i in 1..100) {
        sum += i
    }
    println(sum)
}

Putting It Together

Ranges make loops clean and expressive:

  • .. and until for counting
  • indices for collection positions
  • downTo and step for direction and stride
  • withIndex for value plus position
fun main() {
    val data = listOf(10, 20, 30)
    for (i in data.indices) {
        println("item " + i + " = " + data[i])
    }
}

Quick Check

Test your understanding of ranges in loops.

Recap

You learned to loop with ranges:

  • .., until, indices for counting
  • downTo and step for direction and stride
  • withIndex for index plus value

Next you will explore char ranges and custom range types.

Frequently asked questions

Is the “Ranges in Loops” lesson free?

Yes — the full text of “Ranges in Loops” is free to read here on the web, and the Kotlin Academy course includes 4 lessons in total. To practise it interactively (a built-in code editor and a 24/7 AI tutor) and unlock the rest of the Kotlin Academy course, upgrade to CoddyKit PRO.

What will I learn in “Ranges in Loops”?

Iterate cleanly. You practise Kotlin Academy with hands-on code you run directly in the browser, and a 24/7 AI tutor answers your questions as you work through the lesson.

Do I need any experience to start Kotlin Academy?

No prior experience is required. Kotlin Academy on CoddyKit is structured for beginners through advanced learners; this is — lesson 3 of 4, so you can start here or from the beginning and move at your own pace.

How long does the “Ranges in Loops” lesson take?

Most CoddyKit lessons take about 5–10 minutes. Each one is bite-sized and interactive, so you make steady progress and pick up exactly where you left off across the web and the app.

Can I write and run code in this Kotlin Academy lesson?

Yes. Every Kotlin Academy lesson includes a built-in code editor, so you write and run real code right in your browser and get instant AI feedback — no local setup required.

All lessons in this course

  1. Range Operators
  2. Step and downTo
  3. Ranges in Loops
  4. Char and Custom Ranges
← Back to Kotlin Academy