简介
在本实验中,我们将学习如何在 Rust 中使用 if-else 语句。与其他编程语言类似,Rust 中的 if-else 语句在条件周围不需要括号,并且每个条件后面都跟着一段代码块。这些条件语句是表达式,因此所有分支必须返回相同的类型。在提供的代码示例中,我们首先检查变量 n 是否小于 0,如果是,则打印 n 是负数。如果 n 不小于 0,我们接着检查它是否大于 0,并打印 n 是正数。最后,如果前面的条件都不满足,我们打印 n 是零。另一个示例展示了 if-else 语句如何用作表达式,为变量 big_n 赋一个新值。如果 n 在 -10 到 10 之间,它会打印 n 是一个小数,并将 10 * n 赋给 big_n。否则,它会打印 n 是一个大数,并将 n / 2 赋给 big_n。最后会打印出 n 和 big_n 的最终值。
注意:如果实验未指定文件名,你可以使用任何你想要的文件名。例如,你可以使用
main.rs,并通过rustc main.rs &&./main进行编译和运行。
if/else
使用 if-else 进行分支操作与其他语言类似。与许多语言不同的是,布尔条件不需要用括号括起来,并且每个条件后面都跟着一个代码块。if-else 条件语句是表达式,并且所有分支必须返回相同的类型。
fn main() {
let n = 5;
if n < 0 {
print!("{} is negative", n);
} else if n > 0 {
print!("{} is positive", n);
} else {
print!("{} is zero", n);
}
let big_n =
if n < 10 && n > -10 {
println!(", and is a small number, increase ten-fold");
// 此表达式返回一个 `i32` 类型的值。
10 * n
} else {
println!(", and is a big number, halve the number");
// 此表达式也必须返回一个 `i32` 类型的值。
n / 2
// TODO ^ 尝试用分号抑制此表达式。
};
// ^ 别忘了在这里加分号!所有 `let` 绑定都需要它。
println!("{} -> {}", n, big_n);
}
总结
恭喜你!你已经完成了“if/else”实验。你可以在 LabEx 中练习更多实验来提升你的技能。