循环标签
本课属于 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)挑战
入门编写一个 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;
}
}
}这节课包含一个小测验。开始学习即可作答,并记录你的进度。
基础知识中的所有课
自己练习: Rust 在线编译器