capypad
0 Tage Serie
rust / beginner
Snippet

Schleifen-Labels und vorzeitiges Beenden

Rust erlaubt es dir, Schleifen mit einem Lifetime-Spezifizierer wie 'outer zu benennen. Dies ermöglicht es dir, aus verschachtelten Schleifen von der äußeren Schleife auszubrechen. break ohne Label beendet nur die innerste Schleife, während break 'outer die benannte äußere Schleife beendet.

snippet.rs
rust
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);
Erklärung
1
'outer: loop {
Definiert eine benannte Schleife namens 'outer'
2
let mut inner = 0; loop {
Startet eine innere unbenannte Endlosschleife
3
if inner == 2 { break; }
Beendet innere Schleife wenn inner 2 erreicht
4
if count == 3 { break 'outer; }
Bricht aus der benannten äußeren Schleife aus
5
println!("Count: {}", count);
Finaler Count ist 3 nach dem Breaken der äußeren Schleife