Kotlin For Loop - Kotlin Tutorial
Kotlin Course / Control Flow / Kotlin For Loop

Kotlin For Loop

BLUF: Mastering Kotlin For Loop is a fundamental step in modern Android and server-side development. This lesson covers the concise syntax and powerful features of Kotlin that make this concept easy to implement.
Modern Expressive Code: Kotlin For Loop

Kotlin's safety features and expressive syntax reduce boilerplate. See how Kotlin For Loop makes your code cleaner and more reliable in the tutorial below.

Introduction

The for loop in Kotlin is a powerful construct that allows developers to iterate over a sequence of elements, whether they're in an array, a collection, or a defined range. This is essential for executing repetitive tasks without manually writing out the same code multiple times. Understanding how to use for loops effectively can make your code more efficient and easier to read.

In everyday programming, you might need to process lists of data, perform calculations, or just print values in a certain order. For loops help automate these tasks, saving time and reducing the potential for errors.

Concept Explanation

A for loop is similar to a cycle in a theme park ride: it keeps going around until it has visited every seat (or item in a collection). Instead of getting on each ride one by one, the loop allows you to experience all the "seats" in a single, streamlined process.

In Kotlin, for loops can be used with:

  • Ranges: A sequence of numbers defined by a start and an end value.
  • Collections: Such as lists, sets, and arrays.

Using for loops simplifies code that would otherwise require more complex structures like while loops. In many ways, for loops in Kotlin are akin to foreach loops found in languages like Java or C#.

Basic Syntax

The syntax of a for loop in Kotlin is straightforward:

Example

for (item in collection) {
    // body of loop
}
  • item: Represents the current element in the collection.
  • collection: Can be an array, a range, or any iterable collection.

Let's look at how to use for loops with both ranges and collections.

Syntax Explanation

  1. For Loop Basics:
Example

   for (item in collection) {
       // Code to execute for each item
   }
  • item: Variable that takes the value of each element in the collection.
  • collection: The set of elements, which can be a range, list, or array.
  1. Iterating Over Ranges:
Example

   for (i in start..end) {
       // Code using i
   }
  • start: Beginning of the range.
  • end: End of the range, inclusive.
  1. Using Steps and DownTo:
Example

   for (i in start..end step stepValue) {
       // Code using i
   }
   
   for (i in end downTo start) {
       // Code using i
   }

Working Examples

Example 1: Iterating Over an Array

Let's start with a simple example where we iterate through an array of student scores.

Example

fun main() {
    val studentScores = arrayOf(95, 88, 76, 100, 67)
    for (score in studentScores) {
        println("Student score: $score")
    }
}

Output:

Output

Student score: 95
Student score: 88
Student score: 76
Student score: 100
Student score: 67

Example 2: Iterating Over a Range

Now let's see how to iterate over a range of numbers.

Example

fun main() {
    println("Counting from 1 to 5:")
    for (number in 1..5) {
        print("$number ")
    }
    println()
}

Output:

Output

Counting from 1 to 5:
1 2 3 4 5 

Example 3: Using Steps in a Range

You can also skip values by using the step function.

Example

fun main() {
    println("Counting by twos from 1 to 10:")
    for (number in 1..10 step 2) {
        print("$number ")
    }
    println()
}

Output:

Output

Counting by twos from 1 to 10:
1 3 5 7 9 

Example 4: Iterating in Reverse with downTo

Let's iterate backwards through a range.

Example

fun main() {
    println("Counting down from 5 to 1:")
    for (number in 5 downTo 1) {
        print("$number ")
    }
    println()
}

Output:

Output

Counting down from 5 to 1:
5 4 3 2 1 

Example 5: Iterating Over a Collection (List)

Finally, let's see a more complex example with a list of names.

Example

fun main() {
    val names = listOf("Alice", "Bob", "Charlie", "David")
    for (name in names) {
        println("Hello, $name!")
    }
}

Output:

Output

Hello, Alice!
Hello, Bob!
Hello, Charlie!
Hello, David!

Common Mistakes

  1. Off-by-One Errors:
  • Mistake: Assuming 1..5 includes 6.
  • Correction: Remember that end is inclusive in Kotlin ranges.
  1. Using the Wrong Collection Type:
  • Mistake: Trying to use a for loop on a non-iterable type.
  • Correction: Ensure you're using a type that implements the Iterable interface.
  1. Omitting Curly Braces:
  • Mistake: Not using braces when the loop body has multiple lines.
  • Correction: Always use braces for clarity, even for single lines.
  • Best Practices

  • Use Descriptive Variable Names: Instead of item, use score or name to improve readability.
  • Maintain a Consistent Loop Structure: Always include braces even for single statements to avoid errors in future code modifications.
  • Consider Performance: When working with very large collections, consider using sequences if you only need to evaluate elements in a lazy manner.
  • Practice Exercises

  1. Exercise 1: Create a program that iterates over a range of numbers from 10 to 1 and prints each number with a message.
  2. Exercise 2: Write a program that takes a list of grocery items and prints them in a formatted list.
  3. Exercise 3: Use a for loop to print the even numbers from 1 to 20.

By completing these exercises, you'll gain a stronger grasp of for loops in Kotlin and how to use them in different scenarios. Happy coding!

Input Required

This code uses input(). Please provide values below:

Logic Practice
Install Logic Practice
Add to home screen for a faster app-like experience