English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Rust 언어의 조건 문은 다음과 같은 형식으로 사용됩니다:
fn main() { let number = 3; if number < 5 { println!("조건이 true"); } else { println!("조건이 false"); } }
위 프로그램에서 조건 if 문이 있습니다. 이 문법은 많은 다른 언어에서 흔히 볼 수 있지만, 몇 가지 차이점이 있습니다: 먼저, 조건 표현식 number < 5 소괄호를 사용하지 않아도 됩니다(소괄호를 사용하지 않는 것이 아니라 금지되지 않습니다);하지만 Rust의 if는 단일 문장을 {}에 포함하지 않는 규칙이 없으며, 한 문장을 블록으로 대체할 수 없습니다. 그러나 Rust는 전통적인 else를 지원합니다.-if 문법:
fn main() { let a = 12; let b; if a > 0 { b = 1; } else if a < 0 { b = -1; } else { b = 0; } println!("b는 {}", b); }
실행 결과:
b는 1
Rust의 조건 표현식은 bool 타입이어야 하며, 다음과 같은 프로그램은 오류입니다:
fn main() { let number = 3; if number { // 에러, expected `bool`, found integer (rustc(E0308) println!("Yes"); } }
C는/C++ 언어의 조건 표현식은 정수로 표현되며, 0이 아닌 경우 참으로 간주됩니다. 그러나 이 규칙은 많은 코드 보안성을 중시하는 언어에서는 금지되어 있습니다.
이전 장에서 배운 함수 표현식과 연상을 해보면:
if <condition> { 블록 1 } else { 블록 2 }
이 문법에서 { 블록 1 } 와 { 블록 2 } 함수 표현식이 될 수 있을까요?
정답은 예입니다! 즉, Rust에서는 if를 사용할 수 있습니다-else 구조는 삼항 조건 연산자 표현식과 유사합니다 (A ? B : C) 의 효과:
fn main() { let a = 3; let number = if a > 0 { 1 } else { -1 }; println!("number는 {}", number); }
실행 결과:
number는 1
주의두 함수 표현식의 타입은 같아야 하며, 반드시 else와 그 뒤의 표현식 블록이 있어야 합니다!