迴圈控制

所有迴圈結構都允許使用 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,內迴圈僅迭代一次並且未列印 --

注意: 不要將迴圈標籤與生命週期變數混淆。生命週期變數僅發生在 & 旁邊或作為 <> 中的通用引數。