rust / beginner
Snippet
Loop Labels and Early Exit
Rust allows you to label loops with a lifetime specifier like 'outer. This lets you break out of nested loops from the outer loop. The break without a label exits only the innermost loop, while break 'outer exits the labeled outer loop.
snippet.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
let mut count = 0;'outer: loop {let mut inner = 0;loop {if inner == 2 {break;}inner += 1;}count += 1;if count == 3 {break 'outer;}}println!("Count: {}", count);
Breakdown
1
'outer: loop {
Defines a labeled loop named 'outer'
2
let mut inner = 0; loop {
Starts an inner unlabeled infinite loop
3
if inner == 2 { break; }
Breaks inner loop when inner reaches 2
4
if count == 3 { break 'outer; }
Breaks out of the labeled outer loop
5
println!("Count: {}", count);
Final count is 3 after breaking outer loop