循环控制

所有循环结构都允许使用 breakcontinue 语句。它们影响紧邻的(最里面的)循环。

基本循环控制

break 终止循环:

for x in 0..5 {
    if x > 2 { break; }
    println!("{}", x);
}

输出

0
1
2

continue 提前完成当前迭代

for x in 0..5 {
    if x < 2 { continue; }
    println!("{}", x);
}

输出

2
3
4

高级循环控制

现在,假设我们已经嵌套了循环,并且希望将 break 输出到外部循环。然后,我们可以使用循环标签来指定 breakcontinue 应用于哪个循环。在以下示例中,'outer 是赋予外部循环的标签。

'outer: for i in 0..4 {
    for j in i..i+2 {
        println!("{} {}", i, j);
        if i > 1 {
            continue 'outer;
        }
    }
    println!("--");
}

输出

0 0
0 1
--
1 1
1 2
--
2 2
3 3

对于 i > 1,内循环仅迭代一次并且未打印 --

注意: 不要将循环标签与生命周期变量混淆。生命周期变量仅发生在 & 旁边或作为 <> 中的通用参数。