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