반응형
Web Development · PHP do-while
PHP do-while 반복문 —
"최소 1회 실행"이 필요한 순간
조건이 처음부터 거짓이어도 한 번은 실행되는 후검사 반복문
시작 오늘 분석할 코드
PHP의 do...while 반복문이다. while과 비슷하지만 조건 검사를 반복문 끝에서 한다. 그래서 조건이 처음부터 거짓이어도 본문은 무조건 1번 실행된다.
<?php $i = 0; do{ // 최소 1회이상 실행문을 작동시키고 싶을 때 사용한다. print $i ++; print "<BR>"; }while($i <= 10); ?>
실제 출력 미리보기
0
1
2
3
4
5
6
7
8
9
10
1
2
3
4
5
6
7
8
9
10
→ $i가 0부터 10까지 출력된 뒤, 11이 되어 조건 $i <= 10이 거짓이 되면 종료된다. 총 11번 반복.
용어 용어 정리
do"무조건 한 번은 실행하라"는 시작 키워드
while조건을 끝에서 검사 — 참이면 위로 돌아감
$i ++후위증가 — 현재 값을 쓴 후 1 더함
<= 10"10 이하까지" — 10도 포함
print화면에 값 출력 (echo와 거의 동일)
<BR>HTML 줄바꿈 — 출력 결과를 한 줄씩 띄움
1 do-while의 가장 큰 특징 — "후검사"
while과 do-while은 어디가 다른가?
둘 다 조건이 참인 동안 반복하지만, 조건을 검사하는 시점이 다르다. 이 한 가지 차이가 "본문이 0번 실행될 수 있는가, 최소 1번은 보장되는가"를 결정한다.
while (선검사)
- 조건을 먼저 검사
- 거짓이면 본문 0번 실행
- "조건 만족할 때만 들어가라"
do-while (후검사)
- 본문을 먼저 실행하고 조건 검사
- 처음부터 거짓이어도 1번은 실행
- "일단 한 번 해보고 더 할지 결정"
실생활 비유: while = "비가 오면 우산을 펴라" (안 오면 안 폄) / do-while = "일단 우산을 펴고, 비가 안 오면 접어라" (무조건 한 번은 펴짐)
2 후위증가
$i ++ 이해하기코드의 print $i ++;는 두 가지 동작이 한 줄에 들어 있다. "현재 $i 값을 출력한 다음에 1을 더한다"는 뜻이다. 순서가 중요하다.
$i = 5; print $i ++; → 화면에 "5" 출력 (그 후 $i는 6) $i = 5; print ++ $i; → 먼저 $i가 6이 됨, 화면에 "6" 출력
※ 후위증가의 흐름 (본 코드 기준)
- $i가 0일 때 → 화면에 "0" 출력 → $i를 1로 만듦
- $i가 1일 때 → 화면에 "1" 출력 → $i를 2로 만듦
- ... 반복 ...
- $i가 10일 때 → 화면에 "10" 출력 → $i를 11로 만듦
- $i가 11 → while($i <= 10) 거짓 → 종료
3 do-while의 실행 흐름
┌─────────────────┐ │ $i = 0 초기화 │ └────────┬────────┘ ↓ ┌─────────────────┐ │ do { 본문 } │ ← 무조건 1번 실행 │ print $i ++; │ │ print "<BR>"; │ └────────┬────────┘ ↓ ┌─────────────────┐ │ while($i <= 10) │ ← 조건 검사 └────────┬────────┘ 참 ↙ ↘ 거짓 do로 ↩ 종료
반응형
4 언제 do-while을 쓰는가?
"최소 한 번은 시도해야 의미가 있는 작업"에 쓴다. 사용자 입력 검증, 게임 한 판 진행, 메뉴 표시처럼 실행해 봐야 다음 결정이 나는 경우다.
| 상황 | 왜 do-while이 적절한가 |
|---|---|
| 사용자에게 비밀번호 입력 요청 | 일단 한 번은 물어봐야 함. 맞으면 끝, 틀리면 다시 묻기 |
| 메뉴 표시 → 선택 받기 | 메뉴를 보여줘야 사용자가 종료를 고를 수 있음 |
| 게임 한 판 진행 → 다시 할까? | 최소 1판은 해봐야 "다시 할지" 의사결정 가능 |
| 파일 한 줄 읽기 → 끝까지 반복 | 일단 첫 줄을 읽어봐야 EOF인지 알 수 있음 |
※ 본 예제처럼 단순 카운터(0~10 출력)에는 사실
while이나 for가 더 자연스럽다. do-while은 "조건 모르고 일단 실행"이 핵심이다.5 do-while 끝의 세미콜론
;do-while에는 다른 반복문에는 없는 특징이 하나 있다. }while(조건) 뒤에 세미콜론을 반드시 붙여야 한다.
do-while (✓)
do {
...
} while($i <= 10);마지막 세미콜론 필수
while / for
while($i <= 10) {
...
}중괄호 뒤 세미콜론 없음
※ 자주 빠뜨리는 실수: 마지막
; 누락 → "Parse error: syntax error, unexpected end of file"6 자주 하는 실수
| 실수 | 증상 | 해결 |
|---|---|---|
}while(조건) 뒤 ; 누락 |
Parse error 발생 | do-while 끝에는 반드시 세미콜론 |
| $i 증가식 빠뜨림 | 무한 루프 (브라우저 멈춤) | 본문 안에서 반드시 $i 변경 |
조건을 $i < 10으로 착각 |
10이 출력되지 않음 | "10까지 포함"이면 <= 10 |
print ++ $i;로 잘못 씀 |
1부터 11까지 출력됨 | 후위/전위 증가 구분 ($i ++ vs ++ $i) |
| do-while을 단순 카운터에 사용 | 코드 의도가 불명확 | 최소 1회 실행 의미가 있을 때만 사용 |
7 같은 결과를 만드는 다른 방법
이번 코드(0~10 출력)와 같은 결과는 while·for로도 만들 수 있다. 가독성과 의도에 따라 골라 쓴다.
// 1) while $i = 0; while($i <= 10){ print $i ++; print "<BR>"; } // 2) for (가장 간결) for($i = 0; $i <= 10; $i++){ print $i."<BR>"; } // 3) do-while (본 예제) $i = 0; do { print $i ++; print "<BR>"; } while($i <= 10);
※ 어느 것을 고를까?
for— 반복 횟수가 명확할 때 (1순위)while— 조건이 참인 동안만 반복할 때do-while— 무조건 1번은 실행해야 할 때
핵심 한 줄 요약
do-while조건 검사를 끝에서 하는 후검사 반복문
최소 1회조건 거짓이어도 본문은 반드시 1번 실행
$i ++후위증가 — 사용 후 1 더함
$i <= 10"10 이하" — 10 포함, 총 11번 반복
};do-while 끝 세미콜론 필수
대표 용도메뉴 표시, 입력 검증, "일단 해보고" 패턴
반응형
'php' 카테고리의 다른 글
| PHP foreach 반복문 — 배열 순회 전용 완전 정리 (0) | 2026.06.12 |
|---|---|
| PHP for 반복문 — 초기값·조건·증가식 3박자 완전 정리 (0) | 2026.06.12 |
| XML 외부 CSS — block 레벨, 사용자 정의 태그 완전 정리 (0) | 2026.06.11 |
| CSS 외부 스타일시트 — th { background-color } 완전 정리 (0) | 2026.06.11 |
| XML 구조 — 의미적 태그 + 사용자 정의 완전 정리 (0) | 2026.06.11 |
왕진 블로그

댓글