Menu
Coddy logo textTech

Loop Labels

Part of the Fundamentals section of Coddy's Rust journey — lesson 42 of 75.

Labels in Rust help you break or continue specific loops when they're nested. Add 'label: before a loop to label it.

For example:

'outer: for i in 1..=3 {
    'inner: for j in 1..=3 {
        if i * j > 5 {
            break 'outer;
            // This will break the outer loop
        }
        println!("({}, {})", i, j);
    }
}

In this example, we have two nested loops labeled 'outer and 'inner. When the product of i and j is greater than 5, the break 'outer; statement is executed, which exits the outer loop. The output of this code will be:

(1, 1)
(1, 2)
(1, 3)
(2, 1)
(2, 2)

Similarly, you can use continue 'label; to continue to the next iteration of the specified loop. For example:

'outer: for i in 1..=3 {
    'inner: for j in 1..=3 {
        if i == j {
            continue 'outer;
            // This will continue the outer loop
        }
        println!("({}, {})", i, j);
    }
}

In this case, when i is equal to j, the continue 'outer; statement is executed, which skips the rest of the inner loop and continues with the next iteration of the outer loop. The output will be:

(2, 1)
(3, 1)
(3, 2)
challenge icon

Challenge

Beginner

Write a Rust program that uses labeled loops to find the first pair of numbers (i, j) such that their sum is greater than 10 and their product is a multiple of 12 (The product is divided by 12 without reminder).  The program should iterate through i from 1 to 20 and j from 1 to 20.

When you find the pair, print it in the format (i, j) and break out of the outer loop.

Try it yourself

fn main() {
    'outer: for i in 1..=20 {
        for j in 1..=20 {
            // Your logic here
            
            
            break 'outer;
        }
    }
}
quiz iconTest yourself

This lesson includes a short quiz. Start the lesson to answer it and track your progress.

All lessons in Fundamentals