# 4.1.2 while 구문

&#x20;앞에서 살펴본 for \~ in 구문은 미리 정의된 실행 횟수만큼만 반복하지만 while 구문은 단순히 주어진 조건식의 결과가 false가 될 때까지 실행 구문을 계속 반복 수행합니다. 다시 말해서 while 구문은 '조건을 만족하는 동안은 계속 실행'되는 것으로 이해하면 됩니다.&#x20;

&#x20;for \~ in 구문과 비슷하게 코드를 반복하는 특성이 있기 때문에 종종 어떤 상황에서 무엇을 사용해야하는지 헷갈리는 분들이 많습니다. for \~ in 구문은 while 구문으로 쉽게 변경할 수 있지만, 반대로 while 구문이 필요한 상황을 for \~ in 구문으로 처리하는 것은 쉽지 않기 때문에 while 문을 사용해야 하는 상황만 정확하게 정리해두면 이해하기 좋습니다. while 구문을 사용해야 하는 경우는 다음과 같습니다.

* 실행 횟수가 명확하지 않을 때
* 직접 실행해보기 전까지는 실행 횟수를 결코 알 수 없을 때
* 실행 횟수를 기반으로 할 수 없는 조건일 때

> while <조건식> {
>
> &#x20; <실행할 구문>
>
> }

&#x20;while 키워드 다음에는 조건식이 사용되는데, 조건식은 반드시 참(true)이나 거짓(false)을 결과값으로 반환해야 합니다. 그래서 주로 비교 연산자가 사용되는 경우가 많죠. 이 조건식의 값이 true인 동안은 실행 블록 내의 코드가 반복해서 수행되지만, false를 반환하면 그 즉시 반복문의 실행은 종료되고 코드 블록을 빠져나가 바로 다음에 이어지는 구문을 실행하게 됩니다.

```swift
var n = 2
while n < 1000 {
    n = n * 2
    
}

print("n = \(n)")
```

```
n = 1024
```

&#x20;while 구문에 조건식 대신 true 값을 직접 넣으면 한없이 반복 실행되는 무한 루프가 만들어집니다. 코드 블록을 탈출할 수 있도록 break 문을 넣어주지 않는다면 이 프로그램은 프로세스가 종료되지 않는 한 영원히 실행 블록을 반복하게 될 겁니다.

```swift
while true {
    ... 
}
```
