if/else

if-else 分支结构与其他语言类似。不同之处在于,布尔条件不需要用括号括起来,每个条件后面都跟着一个代码块。if-else 条件是表达式,所有分支必须返回相同的类型。

fn main() {
    let n = 5;

    if n < 0 {
        print!("{} 是负数", n);
    } else if n > 0 {
        print!("{} 是正数", n);
    } else {
        print!("{} 是零", n);
    }

    let big_n =
        if n < 10 && n > -10 {
            println!(",是一个小数字,扩大十倍");

            // 这个表达式返回 `i32` 类型。
            10 * n
        } else {
            println!(",是一个大数字,将数字减半");

            // 这个表达式也必须返回 `i32` 类型。
            n / 2
            // TODO ^ 尝试用分号结束这个表达式。
        };
    //   ^ 别忘了在这里加分号!所有 `let` 绑定都需要它。

    println!("{} -> {}", n, big_n);
}