반응형
러스트의 반복문
러스트에는 loop, while, for 세 종류의 반복문이 있습니다. 우선 loop 부터 살펴봅시다.
loop
loop 키워드는 C언어의 while(1)과 같이 동작합니다. 브레이크 포인트가 loop 블록을 무한 반복합니다.
fn main() {
loop {
println!("loop!");
}
}
위 코드를 종료하려면 ctri + c로 강제 종료해야 합니다.
Rust에서는 break 키워드로 반복문을 탈출 할 수 있습니다. 또한 break 뒤에 반환하고자 하는 값을 넣으면 결과를 반환할 수도 있습니다.
예시로 loop를 사용해 피보나치 수를 구하는 프로그램을 만들어봅시다.
fn main() {
let mut fib = 0;
let mut prev = 0;
let mut curr = 1;
let mut i = 1;
let ans = loop {
if i == 10 {
break fib;
}
fib = prev + curr;
prev = curr;
curr = fib;
i += 1;
};
println!("{}번째 피보나치 수는 {}", i, ans);
}
let ans 뒤에 loop문을 쓰고 반복문 내부 break 뒤에 반환값을 넣었습니다. 예시를 위해 저렇세 작성하였지만 사실 그냥 fib를 출력하면 됩니다.
결과는 다음과 같습니다.
while
while은 다른 언어의 while과 같습니다.
다음은 while을 사용하여 피보나치 수를 구하는 예시입니다.
fn main() {
let mut fib = 0;
let mut prev = 0;
let mut curr = 1;
let mut i = 1;
while i < 10 {
fib = prev + curr;
prev = curr;
curr = fib;
i += 1;
}
println!("{}번째 피보나치 수는 {}", i, fib);
}
결과는 다음과 같습니다.
for
기본적으로 러스트의 for문은 범위 기반 for문입니다. 다음과 같이 배열에 사용할 수 있습니다.
fn main() {
let a = [10, 20, 30, 40, 50];
for element in a.iter() {
println!("배열의 원소 {}", element);
}
}
또한 start..end와 start..=end로 표현되는 Range타입 사용할 수 있습니다.
fn main() {
for number in (1..4).rev() {
println!("{}!", number);
}
}
for 문으로 피보나치 수를 구하는 코드는 다음과 같습니다.
fn main() {
let mut fib = 0;
let mut prev = 0;
let mut curr = 1;
let n = 10;
for _i in 2..=n {
fib = prev + curr;
prev = curr;
curr = fib;
}
println!("{}번째 피보나치 수는 {}", n, fib);
}
반응형
'Rust' 카테고리의 다른 글
Rust로 online-judge 서버 만들어보기 [1] (0) | 2022.10.26 |
---|---|
Rust if 표현식 - 흐름 제어문[1] (0) | 2022.10.18 |
Rust 함수 작성법 (0) | 2022.10.12 |
Rust 데이터 타입(Data Types) (0) | 2022.10.11 |
Rust 변수의 가변성(mutable)과 상수(const) (1) | 2022.10.07 |