在C语言中,我们常用goto语句来在错误条件下跳转到函数的数据清理部分。这种用法的好处尤其体现在“错误发生在嵌套循环”的时候,我们不用每一层循环都加一个标志位,逐级退出。
由于goto的滥用会让程序的控制流程变得混乱,因此,在Rust中是不支持goto语句的。那么,我们如何从嵌套循环中快速退出呢?我们可以通过循环标签的方法来退出。如下面这个例子所示:
代码语言:javascript复制fn main() {
'outer: for x in 0.. {
for y in 0.. {
for z in 0.. {
if x y z > 1000 {
{
println!("x={x}, y={y}, z={z}", x = x, y = y, z = z);
break 'outer;
}
}
}
}
}
println!("done");
}
我们指定最外层的循环的标签为‘outer,当我们要退出的时候,我们就直接break ‘outer就能直接退出最外层循环,输出最底下的”done”字符串。
输出结果如下:
代码语言:javascript复制x=0, y=0, z=1001
done
转载请注明来源:https://longjin666.cn/?p=1584