Kotlin for
Loops
for
loops are similar to Java, but the syntax is different- Unlike in Scala, Kotlin
for
loops are not expressions
Basic syntax
Kotlin for
loops have this basic syntax:
for (e in elements) { // do something with e ...}
For example, given a list:
val nums = listOf(1,2,3)
here’s a single-line algorithm:
for (n in nums) println(n)
The REPL shows how it works:
>>> for (n in nums) println(n)
1
2
3
You can also use multiple lines of code in your algorithm:
for (n in 1..3) {
println(n)
}
Here are a couple of other examples:
// directly on listOf
for (n in listOf(1,2,3)) println(n)
// 1..3 creates a range
for (n in 1..3) println(n)
Using for
with Maps
You can also use a for
loop with a Kotlin Map
(which is similar to a Java HashMap
). This is how you create a Map
of movie names and ratings:
val ratings = mapOf(
"Lady in the Water" to 3.0,
"Snakes on a Plane" to 4.0,
"You, Me and Dupree" to 3.5
)
Given that map, you can print the movie names and ratings with this for
loop:
for ((name,rating) in ratings) println("Movie: $name, Rating: $rating")
Here’s what that looks like in the REPL:
>>> for ((name,rating) in ratings) println("Movie: $name, Rating: $rating")
Movie: Lady in the Water, Rating: 3.0
Movie: Snakes on a Plane, Rating: 4.0
Movie: You, Me and Dupree, Rating: 3.5
In this example, name
corresponds to each key in the map, and rating
is the name I assign for each value in the map.
for
is not an expression
If you’re coming to Kotlin from Scala, it’s important to note that for
is NOT an expression. That means that code like this does not work:
// error
val x = for (n in 1..3) {
return n * 2
}