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`を用いた条件分岐は他の言語に似ています。多くの言語では条件式の中を括弧でくくる必要がありますが、Rustではその必要はありません。条件式の直後にはブロックが続きます。`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);
    }