if/else - Rust By Example
Description: Rust by Example (RBE) is a collection of runnable examples that illustrate various Rust concepts and standard libraries.

## Keyboard shortcuts

Press `←` or `→` to navigate between chapters

Press `S` or `/` to search in the book

Press `?` to show this help

Press `Esc` to hide this help

# 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);
    }