if/else

if-else 分支判断和其他语言类似。不同的是,Rust 语言中的布尔判断条件不必使用小括号包裹,且每个条件后面都跟着一个代码块。if-else 条件选择是一个表达式,并且所有分支都必须返回相同的类型。

  1. fn main() {
  2. let n = 5;
  3. if n < 0 {
  4. print!("{} is negative", n);
  5. } else if n > 0 {
  6. print!("{} is positive", n);
  7. } else {
  8. print!("{} is zero", n);
  9. }
  10. let big_n =
  11. if n < 10 && n > -10 {
  12. println!(", and is a small number, increase ten-fold");
  13. // 这个表达式返回一个 `i32` 类型。
  14. 10 * n
  15. } else {
  16. println!(", and is a big number, half the number");
  17. // 这个表达式也必须返回一个 `i32` 类型。
  18. n / 2
  19. // 试一试 ^ 试着加上一个分号来结束这条表达式。
  20. };
  21. // ^ 不要忘记在这里加上一个分号!所有的 `let` 绑定都需要它。
  22. println!("{} -> {}", n, big_n);
  23. }