Rust:从嵌套循环中退出

2022-11-16 16:56:30 浏览数 (2)

在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

0 人点赞