# Loops in Scala

### For Loop

For loop is used to do some operations for repeated iterations. In scala, for loop is also called for comprehension.

Syntax:

``````for(expression/condition) {
// statements
}``````

Example:

``````val x = List(1,2,3,4,5)

val result1: Unit = for (element <- x) {
element * 2
}

print(result1)

val result2: List[Int] = for(element <- x) yield (element*2)
print(result2)``````

Note: In the above example, we can see for expressions without yield do not result in a value. We should avoid writing such code because that will lead to side effects.

Output:

``````val x: List[Int] = List(1, 2, 3, 4, 5)
val result1: Unit = ()
()
val result2: List[Int] = List(2, 4, 6, 8, 10)
List(2, 4, 6, 8, 10)``````

Few more examples of For loop:

``````val result3: Seq[Int] = for(element <- 0 until 10) yield (element*2)
print(result3)

val result4: Seq[Int] = for(element <- 0 to 10) yield (element*2)
print(result4)``````

Output:

``````val result3: Seq[Int] = Vector(0, 2, 4, 6, 8, 10, 12, 14, 16, 18)
Vector(0, 2, 4, 6, 8, 10, 12, 14, 16, 18)

val result4: Seq[Int] = Vector(0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20)
Vector(0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20)``````

### While Loop

While writing some piece of code, there might be chances that we want to execute a loop till the time a particular condition is met. In such scenarios, a while loop can be used.

Syntax :

``````while(expression/condition) {
//statements
} ``````

Example :

``````var count = 10

while(count > 0) {
print(count + "  ")
count -= 1
}``````

Output:

``````var count: Int = 10
10  9  8  7  6  5  4  3  2  1``````

### Do-While Loop

Syntax:

``````do {
//statements
} while (expression/condition)``````

Example:

``````var count = 10

do {
print(count + "  ")
count -= 1
} while (count > 0)``````

Output:

``````var count: Int = 10
10  9  8  7  6  5  4  3  2  1``````

Note :  We don’t use while and do while loops in scala because they do not return a value.