모든 프로그래밍 언어가 그렇듯 Rust에도 제어문이 있다. 나는 다른 프로그래밍 언어를 다룰 줄 아니 문법만 살펴보겠다.
1. if문, if~else(조건문)
다른 프로그래밍 언어와 사용방법은 동일하고, 문법상의 차이점이 있다면 조건에 괄호가 붙지 않는다.
if 1 < 5 {
print!("Low") //Rust문법
}
if 1 < 5 {
println!("low");
} else if 1 < 4 {
println!("lower than 4");
} else if 1 < 3 {
println!("lower than 3");
} else {
println!("nothing");
}
이게 Rust에서 if문의 문법인데
혹시나 해서 조건에 괄호를 붙여 봤는데 실행이 되긴 했다.
똑똑한 컴파일러가 실행은 시켜주지만 문법을 변경하라고 경고로 알려준다.
if문은 표현식이기 때문에, 2022.04.21 - [Rust] - Rust (5) - Rust에서 함수 사용법 에서 나온 것처럼,
표현식에서도 사용할 수 있다.
let number = if true {
1
} else {
2
};
println!("{}", number);
이 구문이 실행되고 나면 number변수에는 1이 바인딩 된다.
하지만 이렇게 구문마다 다른 데이터 타입을 넣어주게 되면
let number = if true {
1
} else {
"integer"
};
println!("{}", number);
컴파일러에서 오류를 뿜는다.
정리, 다른 프로그래밍 언어와 사용방법은 비슷하지만, 문법의 차이가 있다.
표현식에서도 사용할 수 있지만 구문마다 다른 데이터 타입을 바인딩하려고 한다면, 오류가 발생한다.
2. loop, for, while(반복문)
다른 프로그래밍 언어와 사용방법은 동일하고, 문법상의 차이점이 있다면 조건문의 문법과 동일하게 조건에 괄호가 붙지 않는다.
loop
fn main() {
loop {
println!("again!");
}
}
loop를 사용하게 되면 while(1){}과 같이 무한루프를 돌게 된다. loop는 이게 전부다.
while
fn main() {
let mut count = 3;
while count != 0 {
println!("{}!", count);
count = count - 1;
}
println!("out");
}
count를 가변성 있게 선언해주고, while구문을 통해 1사이클마다 1씩 빼준다.
조건에는 괄호가 쓰이지 않고 0이 아닐 때만 도는 것이니
1씩 빼주다가 0이 되면 break가 되고 "out"을 출력한다.
for
for 문은 좀 특이하다. 문법 자체는 python과 비슷하지만 아래 코드를 보게되면,
fn main() {
let a = [10, 20, 30, 40, 50];
for element in a.iter() {
println!("the value is: {}", element);
}
}
배열의 요소를 하나씩 출력하고 싶다면, iter()함수를 사용하여 배열의 첫번째 요소부터 배열의 마지막 요소까지를 자동으로 접근하여 출력한다.
범위를 직접 정해줄 수도 있는데,
fn main() {
let a = [10, 20, 30, 40, 50];
for element in 0..5 {
println!("the value is: {}", a[element]);
}
}
조건이 좀 특이하다. 0...5라는 조건은 0~4까지 for문 루프를 돌겠다는 것이다.
이것을 실행하고 나면,
다음에는 Rust로
- 화씨와 섭씨를 상호 변환.
- n번째 피보나치 수열 생성.
- 크리스마스 캐롤 “The Twelve Days of Christmas”의 가사를 반복문을 활용해 출력.
이 프로그램을 만들어보겠다.
'Rust > Rust 문법' 카테고리의 다른 글
Rust (6) - 주석 (0) | 2022.04.22 |
---|---|
Rust (5) - Rust에서 함수 사용법 (0) | 2022.04.21 |
Rust (4) - Rust에서 변수의 데이터 타입 (0) | 2022.04.20 |
Rust (3) - Rust에서 변수의 특징 (0) | 2022.04.19 |
Rust (2) - Rust설치, 프로젝트 생성과 기본 출력 예제 (0) | 2022.04.14 |
최근댓글