[Rust]

[Rust] 제어문

극꼼 2023. 7. 20. 20:43
반응형


코드의 실행 흐름을 제어할 수 있는 문법을 제어문이라 합니다. 가장 보편적인 제어문에는 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