迴圈控制
所有迴圈結構都允許使用 break
和 continue
語句。它們影響緊鄰的(最裡面的)迴圈。
基本迴圈控制
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
輸出到外部迴圈。然後,我們可以使用迴圈標籤來指定 break
或 continue
應用於哪個迴圈。在以下示例中,'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
,內迴圈僅迭代一次並且未列印 --
。
注意: 不要將迴圈標籤與生命週期變數混淆。生命週期變數僅發生在 &
旁邊或作為 <>
中的通用引數。