Kotlinlearncs.online LogoJava

    ← Prev

    Index

    Next →

    Kotlin
    Java
    • Algorithms I : 7

    • Loops : 6

    • Arrays : 5

    • Compound Conditionals : 4

    • Conditional Expressions and Statements : 3

    • Operations on Variables : 2

    • Variables and Types : 1

    • Hello, world! : 0

    Loops

    for (i in 0 until 8) {
    println("Hi!")
    }

    This lesson presents the final core computer capability: the ability to repeat something multiple times. By combining this with our ability to store and manipulate data and make decisions, we can truly solve any problem. So let’s get started!

    while
    while

    Let’s meet our first loop. It’s the simplest one in Kotlin, and repeats a block of code while a condition is true:

    var i = 0
    while (i < 8) {
    i++
    }

    The while loop declaration looks quite similar to the if statements we’ve already seen. First the keyword while, followed by a conditional expression inclosed in parantheses, followed by a block. However, unlike the if statement which only executes once, the while statement continues to execute the block as long as the condition evaluates to true. This can cause problems!

    var i = 0
    while (i < 8) {
    i++
    }

    for
    for

    While while is the simplest loop, probably the most common loop you’ll encounter is called a for loop. It’s more complicated than a while loop, but designed to capture a common loop programming pattern. We frequently want to use a loop to increment a variable starting at zero and ending when it reaches some value. (We’ll see why tomorrow.)

    var i = 0
    while (i < 8) {
    println(i)
    i++
    }

    This is so common that Kotlin provides a second loop that captures this pattern. Let’s go through it together:

    for (i in 0 until 8) {
    println(i)
    }

    Variants
    Variants

    The for loop syntax is quite flexible and can produce lots of different sequences of values in the index variable:

    // Includes the endpoint. Compare with until
    for (i in 0..8) {
    println(i)
    }
    // Starting at 8, ending at 88, up by 10
    for (i in 8 until 88 step 10) {
    println(i)
    }
    // Starting at 16, ending at 0, down by 4
    for (i in 16 downTo 0 step 4) {
    println(i)
    }

    However, by far the most common for loop you’ll see is the start at 0, increment by 1, and end when the value is strictly less than some limit:

    var limit = 16
    for (i in 0 until limit) {
    println(i)
    }

    Loop Variable Scope
    Loop Variable Scope

    There is one important difference between this while loop:

    var i = 0
    while (i < 8) {
    i++
    }

    and this for loop:

    for (i in 0 until 8) {
    }

    Let’s try and figure out what it is!

    var i = 0
    while (i < 8) {
    i++
    }

    Solve: Victory Loop (Practice)

    Created By: Geoffrey Challen
    / Version: 2020.8.0

    We've learned how to use computers to manipulate numeric data and make simple decisions using conditionals. But we haven't examined one of their most important capabilities: the ability to repeat the same task over, and over, and over again. A computer will never get tired—although it may run out of battery—and it will never make a mistake—as long as you program it correctly. So this capability is the grounds for our hope that someday computers may help eliminate many current forms of drudgery currently experienced by humans, particularly when forced to repeat mindless tasks.

    Let's get started by writing using a simple loop. Assuming an Int variable named repeat has been declared and initialized to a value larger than or equal to zero, write a loop that prints "Victory!" repeat times on separate lines. You may use any kind of loop you want! But do not modify the value of repeat.

    for v. while
    for v. while

    Let’s explore the connection between the two types of loop using a diagram.

    Solve: Number Loop

    Created By: Geoffrey Challen
    / Version: 2021.8.0

    Let's write a simple loop. Assuming an Int variable named count has been declared and initialized to a value larger than zero, write a loop that prints the numbers between 0 and count - 1, inclusive, one number each line. So if count is 4, you should print:

    0
    1
    2
    3
    

    You can use any kind of loop you want! But do not modify count.

    More Practice

    Need more practice? Head over to the practice page.