我正在查看一些Rust代码并看到了类似的内容:
'running: loop {
// insert code here
if(/* some condition */) {
break 'running;
}
}
"标签"是什么意思?一生的循环?这样做有什么好处和不同之处:
loop {
// insert code here
if(/* some condition */) {
break;
}
}
答案 0 :(得分:6)
<强> Loop labels 强>
您可能还会遇到嵌套循环和需要的情况 指定break或continue语句用于哪一个。喜欢 大多数其他语言,Rust的休息或继续适用于最里面的 环。在你想要打破或继续一个的情况下 在外部循环中,您可以使用标签来指定中断循环 或继续声明适用于。
在下面的例子中,我们继续下一次外循环迭代 当x是偶数时,我们继续下一个内循环迭代 当y是偶数时。所以它会执行println!当x和y都是 奇
'outer: for x in 0..10 {
'inner: for y in 0..10 {
if x % 2 == 0 { continue 'outer; } // Continues the loop over `x`.
if y % 2 == 0 { continue 'inner; } // Continues the loop over `y`.
println!("x: {}, y: {}", x, y);
}
}