조건식 번역 완료

sarojaba authored
revision af3aab985917e1633f55f1e9c74b3b172d45547a
if
# 5.5. 만약에조건식 (if) - 9100%

Rust's take on `if` is not particularly complex, 그러나 전통적인 시스템 언어보다 동적 타입 언어에서의 `if`와 비슷할 것입니다. 이에 대해 더 이야기해봅시다, to make sure you grasp the nuances.의 `if`는 특별히 복잡할 것이 없지만, 전통적인 시스템 언어보다 동적 타입 언어에서의 `if`와 비슷할 것입니다. 이 미묘한 차이를 파악하기 위해 좀 더 이야기해볼까요?

`if`는 일반적인 개념인 ‘분기(branch)’의구체화된 형식입니다. 나무의 가지에서 이름을 따왔고, 선택에따라 다양한 경로가 취해질 수 있는 결정 포인트 역할을 합니다.

`if`의 경우, 하나의 결정에 두개의 경로가 따라옵니다.

```rust
let x = 5;

if x == 5 {
println!("x is five!");
}
```

만약 무언가 하기 위해 `x`의 값을 변경했다면, 이 라인은 출력되지 않을 것입니다. 더 자세히, 만약 `if` 다음에 오는 식이 `true`으로 평가된다면, 블록은 실행됩니다. `false`라면, 그렇지 못합니다.

`false`인 경우에 어떤일이 벌어지길 원한다면, `else`를 사용하세요.

```rust
let x = 5;

if x == 5 {
println!("x is five!");
} else {
println!("x is not five :(");
}
```

하나의 경우가 더 있다면, `else if`를 사용하세요.

```rust
let x = 5;

if x == 5 {
println!("x is five!");
} else if x == 6 {
println!("x is six!");
} else {
println!("x is not five or six :(");
}
```

이렇게 하는 것은 정말 표준적인 방식입니다. 하지만, 이렇게도 할 수 있습니다.

```rust
let x = 5;

let y = if x == 5 {
10
} else {
15
}; // y: i32
```

또는 이와 같이 작성할 수도 있습니다.

```rust
let x = 5;

let y = if x == 5 { 10 } else { 15 }; // y: i32
```

This works because `if` is an expression. The value of the expression is the
value of the last expression in whichever branch was chosen. An `if` without an
`else` always results in `()` as the value
`if`는 표현식이기 때문에 이렇게 동작합니다. 전체 표현식의 값은 선택된 분기에 위치한 마지막 표현식의 값입니다. `else`가 없는 `if`는 항상 `()` 값을 결과로 간주합니다.