Rust기초알기(3) - 기본 문법
3.1 변수와 데이터 타입
3.2 제어문 (조건문, 반복문)
3.3 함수 정의와 호출
3.4 모듈과 패키지
3.5 주석
[목차] Rust Programming - Rust 기초 알기 목차.Zip
#Rust프로그래밍 #Rust언어기초 #Rust기초문법 #Rust기초알기
Rust기초 알기 - 3.2 제어문 (조건문, 반복문)
Rust는 다양한 제어문을 제공하여 프로그램의 흐름을 제어할 수 있습니다. 제어문으로는 조건문(if, else if, else)과 반복문(loop, while, for)이 있습니다.
1. if 조건문:
`if` 조건문은 주어진 조건식이 참(True)인 경우에만 특정 코드 블록을 실행합니다. 조건식이 거짓(False)인 경우 해당 코드 블록은 건너뜁니다. 조건문은 주어진 조건에 따라 코드의 실행 흐름을 분기하는 데 사용됩니다.
Rust에서 if 문은 다음과 같은 구조를 가집니다:
if 조건식 {
// 조건이 참인 경우 실행되는 코드
} else if 다른_조건식 {
// 다른 조건이 참인 경우 실행되는 코드
} else {
// 모든 조건이 거짓인 경우 실행되는 코드
}
조건식은 불리언(bool) 값을 갖는 표현식이며, 조건이 참(True)인 경우 해당 조건에 해당하는 코드 블록이 실행됩니다. else if 문과 else 문은 선택적으로 사용될 수 있습니다.
[Rust `if` 조건 문 예시]
fn main() {
let number = 7;
if number < 5 {
println!("숫자는 5보다 작습니다.");
} else if number == 5 {
println!("숫자는 5와 같습니다.");
} else {
println!("숫자는 5보다 큽니다.");
}
}
* 위의 예시는 number 변수의 값에 따라 세 가지 다른 메시지를 출력합니다. 만약 number가 5보다 작으면 "숫자는 5보다 작습니다."를 출력하고, number가 5와 같으면 "숫자는 5와 같습니다."를 출력하며, 그렇지 않은 경우에는 "숫자는 5보다 큽니다."를 출력합니다.
2. loop 반복문:
loop문은 조건이 참이 될 때까지 무한히 반복하는 제어문입니다. loop문은 주어진 코드 블록을 무한히 반복 할 수 있습니다. `loop` 을 종료하기 위해 조건문을 포함하고 break 키워드로 종료를 해야 합니다.
loop {
// 반복적으로 실행될 코드
if 조건식 {
break; // 반복문 종료
}
}
[Rust `loop` 반복문 예시]
fn main() {
let mut count = 0;
loop {
println!("현재 count 값: {}", count);
count += 1;
if count >= 5 {
break; // count가 5 이상이면 loop 종료
}
}
}
* 위의 코드에서 loop문은 무한히 반복되며, count 변수의 값을 출력하고 1씩 증가시킵니다. if count >= 5 조건문을 사용하여 count가 5 이상이 되면 break를 통해 loop를 종료합니다.
3. while 반복문:
`while` 문은 주어진 조건이 참인 경우에 코드 블록을 반복 실행합니다. 조건이 거짓이 되면 반복이 중지됩니다.
while 조건식 {
// 반복 실행되는 코드
}
[Rust `while` 반복문 예시]
fn main() {
let mut count = 0;
while count < 5 {
println!("현재 count 값: {}", count);
count += 1;
}
println!("반복문 종료!");
}
* 위의 예시는 count 변수가 0에서 시작하여 5보다 작은 동안 반복문이 실행됩니다. 반복문 내에서는 현재 count 값을 출력하고, count를 1씩 증가시킵니다. count가 0,1,2,3,4 일때까지 총 5번 반복되고 count가 5가 되면 반복문의 조건이 거짓이 되면 반복문이 종료됩니다.
4. for in 반복문:
for문은 주로 컬렉션(배열, 벡터 등)의 각 요소에 대해 반복 작업을 수행 하는데 사용됩니다.
for 요소 in 컬렉션 {
// 요소에 대한 반복 실행되는 코드
}
[Rust `for` 반복문 예시]
fn main() {
let numbers = [1, 2, 3, 4, 5];
// numbers[0] = 10; // 컴파일 오류! 배열의 요소는 변경할 수 없음
for number in &numbers {
println!("현재 숫자: {}", number);
}
}
* 위의 예시는 numbers라는 배열에 저장된 각 숫자를 순회하면서 반복문이 실행됩니다. for 반복문의 특성상 반복 변수 number는 각 숫자를 차례대로 가리키게 됩니다( 1> 2 > 3> 4> 5 ). 반복문 내에서는 현재 number 값을 출력합니다.
다음은 벡터를 이용한 동적 크기의 배열을 반복하는 예시입니다.
위의 예시와 달리 동적 크기의 배열을 구현 할 수 있습니다.
let mut numbers = vec![1, 2, 3, 4, 5];
// numbers[0] = 10; // 배열의 요소는 변경 가능
for num in &numbers {
println!("{}", num);
}
*위의 예시는 벡터를 이용하여 numbers의 각 요소를 가져와서 num 변수에 할당하고 반복적으로 출력합니다.
이러한 제어문을 사용하여 Rust 프로그램의 흐름을 제어할 수 있습니다. 각 제어문은 필요에 따라 유연하게 조합하여 복잡한 로직을 구성할 수 있습니다.
ㅁ동적 배열과 정적 배열
let numbers = [1, 2, 3, 4, 5]; 와 let mut numbers = vec![1, 2, 3, 4, 5]; 차이
(1) 데이터 타입:
- let mut numbers = [1, 2, 3, 4, 5];는 고정된 크기의 배열(array)을 생성
- let mut numbers = vec![1, 2, 3, 4, 5];는 동적으로 크기가 조정 가능한 벡터(vector)를 생성
(2) 메모리 할당:
- [1, 2, 3, 4, 5]를 사용한 배열은 컴파일 타임에 크기가 결정되며, 해당 크기에 맞게 메모리가 스택(stack)에 할당
- vec![1, 2, 3, 4, 5]를 사용한 벡터는 실행 타임에 크기가 결정되기 때문에, 메모리는 힙(heap)에 동적으로 할당
(3) 크기 변경:
- 배열([])은 생성된 이후에 크기를 변경할 수 없고 초기에 설정한 크기를 유지함
- 벡터(vec!)는 push, pop 등의 메소드를 사용하여 동적으로 크기를 변경 가능하고 요소를 추가하거나 제거하여 벡터의 크기를 조절가능
ㅁ push pop를 이용한 배열 다루기
push는 벡터의 끝에 요소를 추가하고, pop은 벡터의 마지막 요소를 제거하고 반환하는 역할
fn main() {
let mut numbers = vec![1, 2, 3, 4, 5];
numbers.push(6); // 벡터에 6을 추가
println!("numbers: {:?}", numbers); // [1, 2, 3, 4, 5, 6]
let popped_value = numbers.pop(); // 마지막 요소를 제거하고 반환
println!("popped_value: {:?}", popped_value); // Some(6)
println!("numbers: {:?}", numbers); // [1, 2, 3, 4, 5]
}
Rust 언어가 생소한 명령들이 있어서 C나 Python 같은 언어들과 차이가 많습니다. 하나씩 배워 가야 할 것 같습니다.
[Programming] - Rust기초 알기 - 3.1 변수와 데이터 타입
[Programming] - Rust기초 알기 - 3.2 제어문 (조건문, 반복문)
'Programming' 카테고리의 다른 글
Rust기초 알기 - 3.5 주석 - comment - decorator (79) | 2023.06.21 |
---|---|
Rust기초 알기 - 3.4 모듈과 패키지 (36) | 2023.06.19 |
Rust기초 알기 - 3.3 함수 정의와 호출 (7) | 2023.06.18 |
Rust기초 알기 - 3.1 변수와 데이터 타입 (9) | 2023.06.06 |
[python] Selenium - 웹페이지 Alert창 종류와 관리 (9) | 2023.05.30 |
Rust기초 알기 - 2.3 Rust 개발 IDE에디터 소개 (7) | 2023.05.28 |
[python] Selenium - implicitly wait 과 explicitly wait 이해 (20) | 2023.05.25 |