Menu
CoddyTech

将循环用作表达式

本课属于 Coddy Rust 学习旅程的“逻辑与流程”单元。第 5 课,共 66 课。

在大多数编程语言中,循环是用于重复执行代码的语句。但 Rust 有一个独特的特性:循环也可以是会返回值的表达式。这意味着你可以将循环的结果赋给一个变量。

要从循环中返回一个值,你可以使用 break,后面跟上你想要返回的值:

let result = loop {
    // 检查一些条件
    if condition_met {
        break 42; // 退出循环并返回 42
    }
};

下面是一个从 10 开始查找第一个偶数的实际示例:

let mut counter = 10;

let first_even = loop {
    if counter % 2 == 0 {
        break counter; // 返回这个偶数
    }
    counter += 1;
};

println!("First even number: {}", first_even);

循环会一直继续,直到找到一个偶数,然后使用 break counter 退出循环并返回这个数。返回的值会赋给 first_even。

challenge icon

挑战

简单

你会收到一个起始数字作为输入。读取输入,将其转换为整数,然后使用循环表达式找出从该数字开始第一个能被 7 整除的数字。

要求:

  • 使用会返回值的 loop 表达式
  • 从输入的数字开始检查
  • 找出第一个能被 7 整除的数字(除以 7 的余数为 0)
  • 使用 break 从循环中返回找到的数字
  • 打印结果

输入:一个表示起始数字的整数

输出:打印从输入的数字开始第一个能被 7 整除的数字

亲手试试

use std::io;

fn main() {
    // 读取输入
    let mut input = String::new();
    io::stdin().read_line(&mut input).expect("Failed to read line");
    let start_number: i32 = input.trim().parse().expect("Invalid input");
    
    // TODO:在下方编写你的代码
    // 使用循环表达式找出第一个能被 7 整除的数
    
    
    // 打印结果
    // println!("{}", result);
}
quiz icon自我测试

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

逻辑与流程中的所有课

自己练习: Rust 在线编译器