MST
星途 面试题库

面试题:Rust中使用loop break表达式跳出多层循环的方法

在Rust中,假设有一个嵌套的双层循环,外层是`loop`循环,内层也是`loop`循环。请编写代码实现:当内层循环满足某个条件(例如变量值等于5)时,不仅跳出内层循环,还能同时跳出外层循环,并解释你这样实现的原理。
28.0万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试
fn main() {
    let mut flag = false;
    'outer: loop {
        loop {
            let num = 5;
            if num == 5 {
                flag = true;
                break 'outer;
            }
        }
        if flag {
            break;
        }
    }
    println!("Both loops are broken.");
}

原理解释

  1. 标记循环:在Rust中,可以使用'label语法标记外层循环(这里标记为'outer)。
  2. 内层循环条件判断:在内层循环中,当满足特定条件(变量num等于5)时,设置一个标志变量flagtrue,并且使用break 'outer跳出标记为'outer的外层循环。
  3. 外层循环检查标志:外层循环每次迭代时,检查flag。如果flagtrue,使用break跳出外层循环。这样就实现了在内层循环满足条件时,同时跳出内外两层循环。