if/else

if-else를 사용하는 분기 방법은 다른 언어와 유사합니다. 하지만, 대다수의 언어와 달리 boolean 조건을 괄호로 묶을 필요가 없으며, 각 조건 뒤에는 블록이 반드시 따라붙습니다. if-eles 조건문 또한 표현식이며, 모든 갈래는 동일한 타입을 반환해야 합니다.

fn main() {
    let n = 5;

    if n < 0 {
        print!("{}은(는) 음수입니다.", n);
    } else if n > 0 {
        print!("{}은(는) 양수입니다.", n);
    } else {
        print!("{}은 0입니다.", n);
    }

    let big_n =
        if n < 10 && n > -10 {
            println!(" 작은 숫자이므로, 10배로 늘립니다.");

            // 이 표현식은 `i32`를 반환합니다.
            10 * n
        } else {
            println!(" 큰 숫자이므로, 반으로 나눕니다.");

            // 이 표현식 또한 마찬가지로 `i32`를 반환해야 합니다.
            n / 2
            // TODO ^ 이 표현식에 세미콜론을 붙여보세요.
        };
    //   ^ 이 부분에 세미콜론을 빠트리면 안 됩니다!
    //     모든 `let` 바인딩에는 세미콜론이 필요합니다.

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