7.1 if/else

if-else를 통한 분기문은 다른 언어들과 유사하다. 그들 대다수와는 다르게 boolean 조건부를 괄호안에 넣을 필요가 없고, 각 조건에는 블럭이 뒤따른다. 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, reduce by two");

            // 이 표현 역시 반드시 `i32`를 반환해야 한다.
            n / 2
            // TODO ^ 해당 문장에 세미콜론을 붙혀 금지해보자.
        };
    //   ^ 여기의 세미콜론을 잊지마세요! 모든 `let` 바인딩은 이게 필요함.

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

results matching ""

    No results matching ""