While 루프

대부분의 컴퓨터 프로그래밍 언어에서 while 루프는 반복문의 일종으로, 주어진 불린 자료형 조건을 기반으로 코드가 반복적으로 수행할 수 있게 도와준다. 이 while 루프는 if 문의 반복으로 생각할 수도 있다.

while은 코드와 조건의 블록을 이루고 있다. 조건이 true라면 블록 안의 코드는 실행한다. 조건이 false가 될 때까지 이 작업을 반복한다. 블록을 실행하기 전에 while 루프를 검사하므로 제어 구조는 사전 시험 루프(pre-test loop)로 불리기도 한다. 루프를 실행한 뒤에 조건을 시험하는 do while 루프와 비교된다.

이를테면, C 프로그래밍 언어에서 (같은 구문을 사용하는 자바, C++에도 해당), 다음과 같은 코드의 파편은

x = 0;
while (x < 3) {
   x++;
}

먼저 x가 3보다 작은지를 검사하고 작을 경우 1씩 숫자를 더한다. 조건을 다시 검사하고 다시 실행하여 변수 x가 값 3을 가질 때까지 이 과정을 반복한다.

물론 언제나 "true"라는 조건을 성립하게 만들 수도 있으며, 이때 무한 반복을 만들어 낸다. 고의로 이러한 루프를 만들 경우, break문과 같은 다른 제어 구조를 사용하여 루프를 끝낼 수 있다.

같은 구조 
while (condition) {
   statements;
}

는

while (true) {
   if (!condition) break;
   statements;
}

또는

   goto TEST;
LOOPSTART:
   statements;
TEST:
   if (condition) goto LOOPSTART;
와 같다.

또한 C 계열 언어에서 while 루프는 초기화나 셈식(counting expression)이 없는 for 루프이다. 이를테면 다음과 같다.

for ( ; condition; ) {
   statements;
}

같이 보기 
 do while 루프
 for 루프
 foreach 문

제어 흐름