📜  rust 跳回外循环 - Rust (1)

📅  最后修改于: 2023-12-03 15:04:58.048000             🧑  作者: Mango

Rust跳回外循环

有时候,在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语法跳回到外部循环可以使您更好地控制嵌套循环的行为。但是,由于这会使代码更难理解,请谨慎使用。