컨트롤 플로우(if 조건문)
if 조건문
아래와 같이 사용.
if number < 5 {
println!("The number is less than 5.");
} else if number > 5 {
println!("The number is greater than 5.");
} else {
println!("The number is 5.");
}
if 조건식에는 반드시 불린 타입이 와야 함. (자바스크립트나 c 와는 다르다!)
아래 코드는 if 조건식에 불린 타입이 아닌, 인티저 타입이 왔기에 컴파일 에러 발생. (자바스크립트라면 값 1 은 true 를 의미하여 조건문은 참이 됨)
let number = 3;
if number {
println!("The number is 1");
}
아래와 같이 사용하는 것도 가능.
let condition = true;
let number = if condition {
5
} else {
6
};
중괄호는 익스프레션이기에 값 반환 가능. 위의 if 문은 값을 반환하여 number 변수를 초기화 함. 위 코드는 condition 이 true 이므로 조건문은 참이 되어 number 는 5 가 됨. (조건문 끝에 세미콜론이 있음에도 주목)
if 문을 위와 같이 사용할 경우, if 에서 반환하는 모든 값이 같은 타입이어야 함.
아래 코드는 컴파일 에러 발생.
let condition = true;
let number = if condition {
5
} else {
"six"
};
위처럼 경우에 따라 변수의 타입이 인티저 혹은 스트링이 될 수 없음. 반드시 하나의 타입으로 통일되어야 함.