상세 컨텐츠

본문 제목

32. 조건부 반복: while

RUST 온보딩/러스트를 배우고 만들자_초보자

by 러스트코리아 2026. 8. 21. 21:46

본문

반응형

안녕하세요! 지금까지 우리는 코드를 한 줄씩 위에서 아래로 실행하는 법을 배웠어요. 그런데 만약 **"특정 조건이 만족되는 동안에만"** 어떤 일을 계속 반복하고 싶다면 어떻게 해야 할까요?

 

오늘은 Rust에서 아주 유용한 도구인 **`while`**에 대해 알아볼게요!

 

---

### 💡 while은 무엇일까요? (비유로 이해하기)

`while`은 마치 **"배가 부를 때까지 밥을 먹는 것"**과 같아요.

 

여러분 앞에 맛있는 비빔밥이 한 그릇 있다고 상상해 보세요. 여러분은 이런 규칙을 세웁니다.

> **"그릇이 비어있지 않다면(조건), 한 숟가락 더 먹어라(반복)!"**

 

한 숟가락 먹고 나면 다시 그릇을 확인하겠죠? 아직 밥이 남아있다면 또 한 숟가락 먹습니다. 그러다 마침내 그릇이 텅 비게 되면, 여러분은 숟가락을 내려놓고 식사를 마칩니다.

 

이처럼 `while`은 **조건(Condition, 참인지 거짓인지 판단하는 기준)**이 **참(True, 맞음)**인 동안에만 안쪽에 있는 코드를 계속해서 실행하는 마법 같은 친구예요.

 

---

### 💻 while 코드 살펴보기

 

자, 이제 숫자를 3부터 1까지 거꾸로 세는 아주 간단한 코드를 작성해 볼게요.

 

fn main() {
    let mut number = 3; // 3부터 시작하는 변수(변하는 값을 담는 상자)를 만들어요.

    // number가 0보다 큰 '동안' 계속 반복하세요!
    while number > 0 { 
        println!("{}!", number); // 현재 숫자를 화면에 보여줘요.
        number -= 1; // 숫자를 1씩 줄여요. (이게 없으면 평생 반복해요!)
    }

    println!("발사!"); // 반복문(Loop, 되풀이되는 코드 덩어리)이 끝나면 실행돼요.
}

 

---

### 🔍 여기서 꼭 알아야 할 용어들!

1. **조건(Condition):** `while` 바로 옆에 오는 `number > 0` 같은 부분이에요.

이 결과가 **참(True)**일 때만 반복문 안으로 들어갈 수 있어요.

 

2. **반복문(Loop):** 중괄호 `{ }`로 둘러싸인 코드 덩어리를 말해요. 조건이 맞으면 이 안의 내용이 계속 되풀이됩니다.

 

3. **무한 루프(Infinite Loop):** 만약 위 코드에서 `number -= 1`을 빼먹으면 어떻게 될까요? 숫자가 줄어들지 않으니 영원히 0보다 크겠죠? 프로그램이 멈추지 않고 평생 실행되는 무서운 상황을 말해요.

(조심해야 해요! 😅)

---

 

### 🌟 여러분을 응원합니다!

반응형

관련글 더보기