Rust入门系列第三篇。在 Rust 中,控制流不仅是选择路径——许多结构是能产生值的表达式。
if 和 else#
let score = 85;
if score >= 90 {
println!("Grade: A");
} else if score >= 70 {
println!("Grade: B");
} else {
println!("Grade: C");
}rust条件必须是 bool —— Rust 不会把数字强制转换为布尔值。
if 是表达式#
每个分支都可以返回值,且各分支类型必须相同:
let grade = if score >= 90 { "A" } else { "B" };
println!("{grade}");rust这通常比单独赋值更简洁。
loop#
loop 会一直重复,直到遇到 break:
let mut counter = 0;
let result = loop {
counter += 1;
if counter == 10 {
break counter * 2; // break 后面的值成为结果
}
};
println!("{result}"); // 20rustwhile#
let mut n = 3;
while n > 0 {
println!("{n}");
n -= 1;
}rust范围 for#
对范围使用 for 是惯用的迭代方式:
for i in 0..5 {
println!("{i}");
}rust0..5 不包含末尾;0..=5 包含末尾。也可以迭代集合:
let names = ["Ada", "Grace", "Linus"];
for name in names {
println!("{name}");
}rustbreak 和 continue#
break立即退出循环。continue跳过当前迭代的剩余部分。
for i in 0..10 {
if i % 2 == 0 {
continue;
}
if i > 7 {
break;
}
println!("{i}");
}
// 输出: 1 3 5 7rust结论#
Rust 的控制流表现力强且安全:没有 truthy/falsy 的意外,分支还能产生值。本系列下一篇:函数。