본문 바로가기

비개발자의 개발 일지

현장 팀장에서 수출 ERP까지 — AI와 함께 시스템을 만든 기록

시리즈 보기
php

PHP do-while 반복문 — 최소 1회 실행 보장 완전 정리

by 왕진 2026. 6. 12.
반응형

 

 

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

$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 끝 세미콜론 필수
대표 용도메뉴 표시, 입력 검증, "일단 해보고" 패턴
반응형

댓글