본문 바로가기
카테고리 없음

Rust 조건문과 반복문 | if, match, loop 완전 가이드

by mystory55801 2025. 5. 29.

Rust 조건문과 반복문 완전 가이드 | if, match, loop 사용법

Rust는 안전하고 효율적인 시스템 프로그래밍 언어로, 조건문과 반복문 같은 제어 흐름 구문을 통해 다양한 로직을 구현할 수 있습니다. 이번 글에서는 Rust의 기본 조건문 if, 패턴 매칭을 지원하는 match, 그리고 반복문인 loop, while, for를 자세히 살펴보겠습니다.

1. if 조건문 기본 사용법

Rust의 if문은 조건에 따라 코드 블록을 실행할 때 사용합니다. 다른 언어와 유사하지만, Rust는 if 자체가 표현식(Expression)이므로 결과를 변수에 저장할 수도 있습니다.


fn main() {
    let number = 7;

    if number < 5 {
        println!("5보다 작습니다.");
    } else if number == 5 {
        println!("5와 같습니다.");
    } else {
        println!("5보다 큽니다.");
    }

    // if를 표현식으로 사용하기
    let result = if number % 2 == 0 { "짝수" } else { "홀수" };
    println!("{}는 {}", number, result);
}

2. match 문법과 활용

Rust의 match는 강력한 패턴 매칭 기능을 제공하며, 다양한 조건을 손쉽게 처리할 수 있습니다. switch문과 비슷하지만 훨씬 더 유연합니다.


fn main() {
    let number = 3;

    match number {
        1 => println!("하나"),
        2 => println!("둘"),
        3 | 4 => println!("셋 또는 넷"),
        5..=10 => println!("5에서 10 사이"),
        _ => println!("그 외 숫자"),
    }
}

패턴 매칭은 열거형(enum)과 결합해 상태 머신, 옵션 처리 등에도 많이 활용됩니다.

3. 반복문 loop, while, for

Rust는 총 세 가지 기본 반복문을 지원합니다. 무한 반복인 loop, 조건 반복인 while, 그리고 컬렉션 순회에 최적화된 for입니다.

loop - 무한 반복과 탈출

loop는 무한히 반복하며, break 문으로 반복을 종료할 수 있습니다. loop 자체도 표현식이어서 값을 반환할 수도 있습니다.


fn main() {
    let mut count = 0;

    let result = loop {
        count += 1;
        if count == 5 {
            break count * 2; // loop가 반환하는 값
        }
    };

    println!("반복 종료, 결과: {}", result);
}

while - 조건이 참일 때 반복

조건이 참인 동안 반복하는 while문입니다.


fn main() {
    let mut n = 3;

    while n > 0 {
        println!("n = {}", n);
        n -= 1;
    }
    println!("끝!");
}

for - 컬렉션 및 범위 반복

Rust의 for문은 배열, 벡터, 문자열 슬라이스, 범위 등 이터러블(iterable) 타입을 순회할 때 사용합니다.


fn main() {
    let arr = [10, 20, 30];

    for val in arr.iter() {
        println!("값: {}", val);
    }

    for i in 1..=5 {
        println!("숫자: {}", i);
    }
}

4. 조건문과 반복문의 결합

조건문과 반복문을 조합하면 더 복잡한 로직도 쉽게 구현할 수 있습니다. 예를 들어, 숫자를 받아 0이 될 때까지 반복하며 조건별로 다르게 처리하는 코드입니다.


fn countdown(mut n: i32) {
    while n > 0 {
        if n % 2 == 0 {
            println!("짝수: {}", n);
        } else {
            println!("홀수: {}", n);
        }
        n -= 1;
    }
    println!("카운트다운 완료!");
}

fn main() {
    countdown(5);
}

결론: Rust 조건문과 반복문은 간결하고 강력하다

Rust는 조건문과 반복문에서 간결한 문법과 강력한 표현식을 지원해, 안전하고 효율적인 제어 흐름 구현이 가능합니다. ifmatch는 조건에 따라 다른 행동을 구현하고, loop, while, for 반복문은 다양한 상황에 맞게 반복 로직을 작성할 수 있게 도와줍니다.

Rust의 패턴 매칭과 표현식 활용법을 익히면, 복잡한 조건과 반복도 깔끔하게 해결할 수 있습니다. 앞으로 더 심화된 제어 흐름과 고급 기능도 함께 배워보세요!