정의 및 사용 방법
- PHP 버전
- 4+
while
문은 조건식과 코드 블록으로 구성되며,
조건식이 참(true
)인 동안 코드 블록을 반복 실행하는 반복문입니다.
조건식이 거짓(false
)이 되면 반복이 종료됩니다.
while
문은 특정 횟수가 사전에 정해져 있지 않은 부울(boolean) 조건의 코드를 반복 실행할 때 매우 유용합니다.
while
문은 if
문이 반복되는 형태라고 생각할 수 있습니다.
출처: wikipedia - While loop
기본 예제
$i = 1;
while ($i <= 5) {
echo $i;
$i++;
}
// 1 2 3 4 5
구문
while
문은 괄호로 묶인 조건식과 코드 블록으로 구성되어 있습니다.
while (코드 블록 실행 조건식) {
// 실행할 코드 블록
}
코드 블록 실행 조건식
코드 블록을 실행할 조건식입니다. 생략할 수 없습니다.
- 이 조건식이 참(
true
)이면 코드 블록을 실행합니다. - 이 조건식이 거짓(
false
)이면while
문은 더 이상 실행되지 않고 종료됩니다. - 조건식을 생략하면 구문 오류가 발생합니다.
구문의 실행 순서
while
문이 실행될 때, 다음의 순서대로 실행됩니다.
코드 블록 실행 조건식
으로 검사합니다. 이때, 이 조건식이 참(true
)이면 코드 블록을 실행합니다. 하지만, 거짓(false
)이면for
문은 더 이상 실행되지 않고 종료됩니다.코드 블록 실행 조건식
이 참(true
)으로 검사되었다면 코드 블록이 실행됩니다.- 코드 블록이 실행된 후,
코드 블록 실행 조건식
으로 검사하는 첫 번째 단계로 되돌아갑니다. 이 후의 단계가 반복됩니다.
참고 사항
PHP에서는 while
문에 대한 제어 구조를 위한 대체 구문(Alternative Syntax for Control Structures)을 지원합니다. 이를 "colon syntax"라고도 부릅니다. 이 구문은 주로 HTML과 PHP를 섞어 쓸 때 가독성을 높이기 위해 사용됩니다.
while
문
<?php while (코드 블록 실행 조건식): ?>
<?php // 실행할 코드 블록 ?>
<?php endwhile; ?>
<?php $i = 1; ?>
<?php while ($i <= 5): ?>
<?php
echo $i;
$i++;
?>
<?php endwhile; // 1 2 3 4 5 ?>
while
문의 유용성
while
문은 특정 횟수가 사전에 정해져 있지 않은 부울(boolean) 조건의 코드를 반복 실행할 때 매우 유용합니다.
예를 들어, 데이터베이스에서 가져올 데이터의 개수가 사전에 정해져 있지 않은 상황에서 반복적으로 데이터를 처리할 수 있습니다.
아래 예제는 MySQL 데이터베이스에서 게시판 목록을 가져와 출력하는 코드입니다. 데이터베이스에 저장된 게시물의 개수는 미리 알 수 없으므로, while
문을 사용하여 모든 게시물을 출력할 때까지 반복합니다.
일러두기!!
소개하는 예제 코드는 while
문의 작동의 이해를 위한 단순 예제입니다.
실전에서 사용하려면 추가적인 적절한 조치가 필요할 수 있습니다.
// 데이터베이스 연결 설정
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database";
// MySQLi를 사용하여 데이터베이스 연결 생성
$conn = new mysqli($servername, $username, $password, $dbname);
// 연결 상태 확인
if ($conn->connect_error) {
die("연결 실패: " . $conn->connect_error);
}
// 게시판 목록을 가져오는 SQL 쿼리
$sql = "SELECT id, title, content FROM board";
$result = $conn->query($sql);
// 결과 처리
if ($result) {
if ($result->num_rows > 0) {
// while 문을 사용하여 모든 게시물을 출력
while ($row = $result->fetch_assoc()) {
echo "ID: " . $row["id"] . " - 제목: " . $row["title"] . " - 내용: " . $row["content"] . "<br>";
}
} else {
echo "게시물이 없습니다.";
}
} else {
echo "쿼리 오류: " . $conn->error;
}
// 데이터베이스 연결 종료
$conn->close();
이 예제는 while
문이 특정 횟수가 사전에 정해져 있지 않은 조건에서 코드를 반복 실행하는 데 어떻게 유용하게 사용될 수 있는지를 보여줍니다. 데이터베이스에서 결과를 가져와 처리할 때, 결과의 개수를 미리 알 수 없으므로 while
문을 사용하여 조건이 충족될 때까지 반복 실행하는 것이 적절합니다.
반면에, for
문은 특정 횟수나 정해져 있는 범위만큼 코드를 반복 실행할 때 매우 유용합니다.
주의할 점
while
문을 사용할 때에는 무한 반복에 빠지지 않게 주의해야 합니다.
반복 횟수를 제어하기 위해 상황에 따라 조건식을 변경하거나 증감 변수를 사용을 고려할 수 있습니다.
$i = 1;
while ($i <= 5) {
echo $i;
/* 이 코드에서 증감식이 없다면 무한 반복에 빠지게 됩니다. */
//$i++;
}