将循环用作表达式
本课属于 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。
挑战
简单你会收到一个起始数字作为输入。读取输入,将其转换为整数,然后使用循环表达式找出从该数字开始第一个能被 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);
}这节课包含一个小测验。开始学习即可作答,并记录你的进度。
逻辑与流程中的所有课
自己练习: Rust 在线编译器