PHP 매뉴얼
이전 | 11. 장. 제어 구조 | 다음

# `do..while`

`do..while`루프는 시작부분이 아니라 각 반복(iteration)의 끝부분에서 표현식이 참인지 체크한다는것을 제외하고 `while`루프와 매우 비슷하다. 일반적인 `while`문과의 주요한 차이점은 `do..while`문의 첫번째 반복이 반드시 수행된다는것이다 (반복의 끝부분에서 표현식이 참인지 체크한다), 이와 같은 경우는 일반 `while`루프로 수행시킬수 없을것이다. (while루프에서는 각 반복의 시작부분에서 표현식이 참인지 체크되고, 시작부터 바로 그 값이 `FALSE`이면 그 루프는 즉시 수행을 멈추게 된다)

다음에 `do..while`루프의 한가지 문법을 보인다:

`<?php $i = 0; do { echo $i; } while ($i > 0); ?>`

위 루프는 정확히 한번 수행된다. 첫번째 반복(iteration) 이후에 표현식이 참인지 체크할때, `FALSE`가 되므로 ($i는 0보다 크지 않다) 루프 수행이 멈춘다.

고급 C 유저는 `do..while`루프의 다른 사용법에 익숙할것이다. 즉, `do..while` (0)로 감싸고, `break`절을 사용하여 코드 블록의 중간에서 수행을 멈출수 있습니다. 다음 코드 예는 이런 경우를 보여준다:

`<?php do { if ($i < 5) { echo "i는 충분히 크지 않다"; break; } $i *= $factor; if ($i < $minimum_limit) { break; } echo "i is ok"; /* process i */ } while (0); ?>`

이 코드를 바로 또는 전혀 이해할수 없다고 걱정하지 마라. 이런 '기능'을 사용하지 않고도 일반스크립트나 심지어 굉장한 스크립트를 작성할 수 있다.

이전 | 처음으로 | 다음
`while` | 위로 | `for`