100 Exercises To Learn Rust - 2.3 if_else 풀기

/// `n`이 짝수이면 `12`를,
/// `n`을 3으로 나눌 수 있으면 `13`을,
/// 아니면 `17`을 반환하기

fn magic_number(n: u32) -> u32 {
    todo!()
}

 

러스트에서 표현식(expression)은 값을 반환하는 반면, 문(statement)는 값을 반환하지 않는다. 일반적으로 statement는 세미 콜론(;)으로 마친다.

 

함수 본문에서 명시적으로 return을 사용하지 않아도, 그것이 표현식이라면 함수의 반환 값으로 처리된다.

 

따라서 다음과 같은 작성이 가능하다. if문 역시 표현식이기 때문이다.

 

정답:

fn magic_number(n: u32) -> u32 {
    if n % 2 == 0 {
        12
    } else if n % 3 == 0 {
        13
    } else {
        17
    }
}