for statement

for i <- 1 to 10 do println(i)

i <- 1 to 10 is referred as generator.

For multiline

for i <- 1 to 10
do
  println(i)

Guards

for statement can have if statements as guards.

Iterating over Map

for (key, value) <- map do println(key + " " + value)

for expressions

for i <- List(1, 2, 3) yield
    // some other code
    i.toString * 10

yield makes the this for loop an expression.

for comprehension

val f = Future {
    1
}
 
for value <- f do
    println(value)

while loops

while condition do
    //