Rust에서 사용할 수 있는 조건문은 if가 있고 반복문은 loop, while, for가 있습니다.
조건문
조건문 if의 사용은 다른 언어와 별반 다르지 않습니다.
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");
}
}
c, c++ 등에서 쓰이는 if 와 다른 점은 조건식의 괄호가 쓰이지 않는다는 점입니다.
조건은 무조건 bool로 표현될 수 있어야 합니다.
다음과 같은 식은 에러를 발생시킵니다.
fn main() {
let number = 3;
if number {
println!("number was three");
}
}
다른 언어에서 자주 쓰이던 삼항연산자를 let을 활용해 표현할 수 있습니다.
fn main() {
let condition = true;
let number = if condition {
5
} else {
6
};
println!("The value of number is: {}", number);
}
number 변수에는 condition이 참이라면 5 거짓이라면 6이 저장됩니다.
반복문
loop
loop문은 다른 언어에서 while(True)와 같습니다.
loop문 내에 종료 조건을 명시해주지 않으면 무한정으로 반복되게 됩니다.
fn main() {
loop {
println!("again!");
}
}
위 예시는 반복문 내에 종료 조건을 명시해주지 않았기 때문에 반복문이 계속 실행됩니다.
fn main() {
let mut i = 0;
loop {
println!("again!");
if i >= 10 {
break;
}
i = i + 1;
}
}
위와 같이 종료 조건을 명시해주고 조건이 참 이라면 break 문을 사용해 반복문을 빠져나올 수 있습니다.
while
while은 조건이 참인 동안만 반복되며 중간에 조건이 충족되면 break 문으로 반복문을 빠져나올 수 있습니다.
fn main() {
let a = [10, 20, 30, 40, 50];
let mut index = 0;
while index < 5 {
println!("the value is: {}", a[index]);
index = index + 1;
}
}
예시를 보면 index가 5 미만일 때 동안 while 문이 반복되고 마지막 라인에서 index를 1씩 증가시켜 줍니다.
for
for는 다양한 방법으로 반복시킬 수 있습니다.
fn main() {
let a = [10, 20, 30, 40, 50];
for element in a.iter() {
println!("the value is: {}", element);
}
}
다음과 같이 사용하게 되면 a의 0번 인덱스 원소부터 마지막 원소까지 차례로 element에 대입되게 됩니다.
실행시켜보면

배열 a에 모든 원소 출력을 한 것을 볼 수 있습니다.
특정 횟수 또는 구간을 반복하기 위해서는 다음과 같이 표현할 수 있습니다.
fn main() {
for number in (1..10) {
println!("{}!", number);
}
println!("LIFTOFF!!!");
}

rev()를 사용하면 역순으로 반복문을 수행할 수 있습니다.
fn main() {
for number in (1..10).rev() {
println!("{}!", number);
}
println!("LIFTOFF!!!");
}

'Rust' 카테고리의 다른 글
[Rust] 구조체 (0) | 2022.04.18 |
---|---|
[Rust] 데이터 타입 (0) | 2022.04.16 |
[Rust] 변수 가변성(Mutability) (0) | 2022.04.11 |
[Rust] 함수 (0) | 2022.04.10 |
Rust 연습해보기 (0) | 2022.04.03 |