📅  最后修改于: 2023-12-03 15:04:58.048000             🧑  作者: Mango
有时候,在Rust中编写嵌套循环时,您可能需要在内部循环中找到某种条件并跳回到外部循环。在这种情况下,您可以使用Rust的'label
语法来实现此目的。
'label
语法Rust的'label
语法允许您标记任何代码块,并使用该标记从内部代码块跳转到外部代码块。以下是语法:
'outer: loop {
// Outer loop code here
'inner: loop {
// Inner loop code here
// Jump back to outer loop if condition is met
if condition {
break 'outer;
}
}
}
在上面的例子中,'outer
和'inner
是标签,loop
表示无限循环。
当您使用break
关键字并指定标签时,代码将跳转到指定标签之后的下一条语句而不是像通常情况下继续循环。
以下是一个使用'label
语法的示例,其中我们有两个嵌套循环。在内部循环中,如果计数器为5,我们将跳回到外部循环。
fn main() {
'outer: loop {
println!("Entering outer loop");
'inner: loop {
println!("Entering inner loop");
for j in 1..10 {
println!("j = {}", j);
if j == 5 {
println!("Breaking inner loop");
break 'inner;
}
}
}
println!("Exiting outer loop");
}
println!("Program complete");
}
输出如下:
Entering outer loop
Entering inner loop
j = 1
j = 2
j = 3
j = 4
j = 5
Breaking inner loop
Exiting outer loop
Entering outer loop
Entering inner loop
j = 1
j = 2
j = 3
j = 4
j = 5
Breaking inner loop
Exiting outer loop
Entering outer loop
Entering inner loop
j = 1
j = 2
j = 3
j = 4
j = 5
Breaking inner loop
Exiting outer loop
Entering outer loop
Entering inner loop
j = 1
j = 2
j = 3
j = 4
j = 5
Breaking inner loop
Exiting outer loop
Entering outer loop
Entering inner loop
j = 1
j = 2
j = 3
j = 4
j = 5
Breaking inner loop
Exiting outer loop
Program complete
从输出结果可以看出,当内部循环中的计数器等于5时,跳回了外部循环。
使用'label
语法跳回到外部循环可以使您更好地控制嵌套循环的行为。但是,由于这会使代码更难理解,请谨慎使用。