코드의 실행 흐름을 제어할 수 있는 문법을 제어문이라 합니다. 가장 보편적인 제어문에는 if 표현식과 반복문이 있습니다.
1) if 표현식
fn main() {
let number = 3;
if number < 5 {
println!("condition was true");
} else if number == 5 {
println!("number is 5");
} else {
println!("condition was false");
}
}
if 식은 조건을 붙이고 조건이 true가 될 때 중괄호 안의 코드를 읽습니다. else 식은 if 식이 false일 때, else if 식은 if 식 조건문에 포함되지 않는 또 다른 조건을 제시합니다. if 식에 쓰이는 조건은 반드시 bool을 반환해야 합니다.
let 구문에서도 if 식을 다음과 같이 사용할 수 있습니다. 변수 number에는 if 식에서 반환되는 값이 bound됩니다.
fn main() {
let condition = true;
let number = if condition {
5
} else {
6
};
}
주의해야할 점은 if 식, else 식에서 반환되는 값의 타입이 같아야 한다는 점입니다. 그렇지 않으면 'error[E0308]: if and else have incompatible types' 에러가 뜨게 됩니다.
2) 반복문
Rust가 제공하는 반복문에는 loop, while, for가 있습니다.
아래 loop문은 break; 코드가 없기 때문에 프로그램을 강제 종료하기 전까지 again!이 반복적으로 출력됩니다.
loop {
println!("again!");
}
while문은 조건을 이용할 때 유용합니다. 다음 while문은 3! 2! 1! 을 출력한 뒤 조건이 false가 되어 끝이 납니다.
let mut number = 3;
while number != 0 {
println!("{}!", number);
number = number - 1;
}
for문은 개수가 정해진 배열 등을 반복 수행할 때 유용합니다.
let a = [10, 20, 30, 40, 50];
let mut index = 0;
for element in a.iter() {
println!("the value is: {}", element);
}
Rust에서는 기본 라이브러리고 Range를 제공하는데, Range는 한 지정한 범위의 모든 숫자를 차례로 생성합니다.
(start..end) 형식으로, start ≤ x < end 범위의 수를 반환합니다. (1..=100) 로 하면 100을 포함합니다.
지정된 범위의 값을 반복할 때 for문과 Range를 함께 사용하면 유용합니다.
요약에 사용된 참조 : https://rinthel.github.io/rust-lang-book-ko/ch03-05-control-flow.html
'[Rust]' 카테고리의 다른 글
[Rust] 참조자(References)와 빌림(Borrowing) (0) | 2023.07.26 |
---|---|
[Rust] 소유권 (0) | 2023.07.25 |
[Rust] 함수 동작 원리 (0) | 2023.07.19 |
[Rust] 데이터 타입 (0) | 2023.07.18 |
[Rust] 변수와 가변성 (0) | 2023.07.17 |