Labels
Both continue and break can optionally take a label argument which is used to break out of nested loops:
1. ```
fn main() {
```
2. ```
let s = [[5, 6, 7], [8, 9, 10], [21, 15, 32]];
```
3. ```
let mut elements_searched = 0;
```
4. ```
let target_value = 10;
```
5. ```
'outer: for i in 0..=2 {
```
6. ```
for j in 0..=2 {
```
7. ```
elements_searched += 1;
```
8. ```
if s[i][j] == target_value {
```
9. ```
break 'outer;
```
10. ```
}
```
11. ```
}
```
12. ```
}
```
13. ```
print!("elements searched: {elements_searched}");
```
14. ```
}
```
- Labeled break also works on arbitrary blocks, e.g.
1.
#![allow(unused)]
2.
fn main() {
3.
'label: {
4.
break 'label;
5.
println!("This line gets skipped");
6.
}
7.
}
