진행률 표시

sarojaba authored
revision a62459236b5cd157f17cd2bd8a14f0b51142e235
if
# 5.5. 만약에 (if) - 90%

Rust's take on `if` is not particularly complex, 그러나 전통적인 시스템 언어보다 동적 타입 언어에서의 `if`와 비슷할 것입니다. 이에 대해 더 이야기해봅시다, to make sure you grasp the nuances.

`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.