Lesson 3
Scala Loops Essentials: Exploring For and While Loops with Collections
Topic Overview and Actualization

Hello, Explorer! Today, we will dive into the world of Scala loops, pivotal constructs that streamline repetitive tasks. Picture loops as a marathon of TV series episodes. We will explore the Scala looping universe and gain hands-on experience by applying loops to collections like Lists and Strings.

Understanding Looping

Have you ever experienced repeating a favorite song on a loop? That's what loops are all about in programming too. For instance, you can print greetings for a list of friends using a for loop in Scala:

Scala
1object Solution { 2 def main(args: Array[String]): Unit = { 3 val friends = List("Alice", "Bob", "Charlie", "Daniel") 4 // `friend` is the loop variable, taking each name in the `friends` list 5 for (friend <- friends) { 6 // for each `friend`, this line is executed 7 println(s"Hello, $friend! Nice to meet you.") 8 } 9 /* 10 Prints: 11 Hello, Alice! Nice to meet you. 12 Hello, Bob! Nice to meet you. 13 Hello, Charlie! Nice to meet you. 14 Hello, Daniel! Nice to meet you. 15 */ 16 } 17}

Loops allow us to automate repetitive sequences efficiently.

For Loop in Scala

In Scala, a for loop works with any sequence, like Lists or Strings. Let's print a range of numbers using a for loop:

Scala
1object Solution { 2 def main(args: Array[String]): Unit = { 3 // `num` runs through each number in the range from 0 until 5 (exclusive) 4 for (num <- 0 until 5) { 5 // This line will print numbers from 0 to 4 6 println(num) 7 } 8 } 9}

Each loop iteration updates the variable (num) to the next sequence value before executing the code block.

While Loop in Scala

While loops execute code continuously until a condition becomes false. Here's a simple example:

Scala
1object Solution { 2 def main(args: Array[String]): Unit = { 3 var num = 0 4 // The loop keeps running until num is greater than or equal to 5 5 while (num < 5) { 6 println(num) 7 // increase num by 1 each iteration 8 num += 1 9 } 10 } 11}

As you can see, before each iteration, Scala checks the condition (num < 5). If it's true, the code block runs; otherwise, Scala exits the loop.

Looping Over Collections

Scala loops can directly work with collections, making it easy to handle elements of a List or String.

For instance, consider looping over a list:

Scala
1object Solution { 2 def main(args: Array[String]): Unit = { 3 // List of fruits 4 val fruits = List("apple", "banana", "cherry") 5 // `fruit` stands for each fruit in the `fruits` list 6 for (fruit <- fruits) { 7 println(fruit) // prints each fruit 8 } 9 } 10}

And, looping over a string:

Scala
1object Solution { 2 def main(args: Array[String]): Unit = { 3 val word = "hello" 4 // `letter` is each individual character in the `word` 5 for (letter <- word) { 6 println(letter) // prints each letter in 'hello' 7 } 8 } 9}
Applications of Looping

Loops are integral to programming. They are used in various programming applications, such as summing numbers in a list or parsing text.

Scala
1object Solution { 2 def main(args: Array[String]): Unit = { 3 // List of numbers 4 val numbers = List(1, 2, 3, 4, 5) 5 var total = 0 6 // `num` is each number in `numbers` 7 for (num <- numbers) { 8 total += num // add each number in the list 9 } 10 println(total) // prints the total sum 11 } 12}
Scala
1object Solution { 2 def main(args: Array[String]): Unit = { 3 // String 4 val text = "hello" 5 var vowelCount = 0 6 // `letter` is each character in `text` 7 for (letter <- text) { 8 // If a vowel letter is found, increment the count 9 if ("aeiou".contains(letter)) { 10 vowelCount += 1 11 } 12 } 13 println(vowelCount) // prints the count of vowels 14 } 15}
Lesson Summary and Practice

Well done on getting a grasp of Scala loops! We revisited the fundamentals of looping, Scala's for and while loops, and how to loop over collections. Now, it's time for some essential practice exercises to cement your learning. The more problems you solve, the more adept you become. Onward, we continue on the programming voyage!

Enjoy this lesson? Now it's time to practice with Cosmo!
Practice is how you turn knowledge into actual skills.