fn main() {
let number = 3;
if number < 5 {
println!("condition was true");
} else {
println!("condition was false");
}
}
단, Rust 에서는 0이 아닌 숫자라고 true 로 판단하지 않습니다. 명시적으로 조건을 제시해야 합니다.그래서 아래의 코드는 에러를 발생시킵니다.
fn main() {
let number = 3;
if number {
println!("number was three");
}
}
Rust는 첫 번째 true 조건의 블록만 실행하고 나면 나머지를 확인하지 않습니다.
fn main() {
let number = 6;
if number % 4 == 0 {
println!("number is divisible by 4");
} else if number % 3 == 0 {
println!("number is divisible by 3");
} else if number % 2 == 0 {
println!("number is divisible by 2");
} else {
println!("number is not divisible by 4, 3, or 2");
}
}
위 코드를 실행하면 number is divisible by 3 를 출력합니다.
if가 표현식인 경우, let 문의 오른쪽에 사용하여 결과를 변수에 할당할 수 있습니다.
fn main() {
let condition = true;
let number = if condition { 5 } else { 6 };
println!("The value of number is: {number}");
}
if의 각 분기에서 가능한 결과값은 동일한 유형이어야 합니다. 그래서 아래 코드는 에러를 발생시킵니다.
fn main() {
let condition = true;
let number = if condition { 5 } else { "six" };
println!("The value of number is: {number}");
}