Menu
CoddyTech

循环标签

本课属于 Coddy Rust 学习旅程的“基础知识”单元。第 42 课,共 75 课。

在 Rust 中,标签可以帮助你在循环嵌套时中断或继续指定的循环。在循环前添加 'label:,即可为它添加标签。

例如:

'outer: for i in 1..=3 {
    'inner: for j in 1..=3 {
        if i * j > 5 {
            break 'outer;
            // This will break the outer loop
        }
        println!("({}, {})", i, j);
    }
}

在这个示例中,我们有两个嵌套循环,分别标记为 'outer 和 'inner。当 i 和 j 的乘积大于 5 时,会执行 break 'outer; 语句,退出外层循环。这段代码的输出为:

(1, 1)
(1, 2)
(1, 3)
(2, 1)
(2, 2)

类似地,你可以使用 continue 'label; 继续指定循环的下一次迭代。例如:

'outer: for i in 1..=3 {
    'inner: for j in 1..=3 {
        if i == j {
            continue 'outer;
            // This will continue the outer loop
        }
        println!("({}, {})", i, j);
    }
}

在这种情况下,当 i 等于 j 时,会执行 continue 'outer; 语句,跳过内层循环剩余的部分,继续外层循环的下一次迭代。输出为:

(2, 1)
(3, 1)
(3, 2)
challenge icon

挑战

入门

编写一个 Rust 程序,使用带标签的循环找到第一对满足以下条件的数字 (i, j):它们的和大于 10,且它们的乘积是 12 的倍数(乘积除以 12 没有余数)。 程序应遍历 i 从 1 到 20,以及 j 从 1 到 20。

找到这对数字后,按 (i, j) 的格式打印它们,并跳出外层循环。

亲手试试

fn main() {
    'outer: for i in 1..=20 {
        for j in 1..=20 {
            // Your logic here
            
            
            break 'outer;
        }
    }
}
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

基础知识中的所有课

自己练习: Rust 在线编译器