5.5. 만약에 (if) - 90%
Rust's take on if
is not particularly complex, 그러나 전통적인 시스템 언어보다 동적 타입 언어에서의 if
와 비슷할 것입니다. 이에 대해 더 이야기해봅시다, to make sure you grasp the nuances.
if
는 일반적인 개념인 ‘분기(branch)’의구체화된 형식입니다. 나무의 가지에서 이름을 따왔고, 선택에따라 다양한 경로가 취해질 수 있는 결정 포인트 역할을 합니다.
if
의 경우, 하나의 결정에 두개의 경로가 따라옵니다.
let x = 5;
if x == 5 {
println!("x is five!");
}
만약 무언가 하기 위해 x
의 값을 변경했다면, 이 라인은 출력되지 않을 것입니다. 더 자세히, 만약 if
다음에 오는 식이 true
으로 평가된다면, 블록은 실행됩니다. false
라면, 그렇지 못합니다.
false
인 경우에 어떤일이 벌어지길 원한다면, else
를 사용하세요.
let x = 5;
if x == 5 {
println!("x is five!");
} else {
println!("x is not five :(");
}
하나의 경우가 더 있다면, else if
를 사용하세요.
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 :(");
}
이렇게 하는 것은 정말 표준적인 방식입니다. 하지만, 이렇게도 할 수 있습니다.
let x = 5;
let y = if x == 5 {
10
} else {
15
}; // y: i32
또는 이와 같이 작성할 수도 있습니다.
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.