PHP / 반복문 / while, do-while, for

while

문법

while ( condition ) {
  statement;
}

condition을 만족할 때까지 중괄호 안에 있는 statement를 실행합니다.

중괄호 대신 콜론(:)과 endwhile을 사용할 수도 있습니다.

while ( condition ) :
  statement;
endwhile;

예제

<?php
  $i = 1;               // 초기값 설정
  while ( $i < 10 ) {   // 조건을 만족하면 실행, 만족하지 않으면 빠져나감
    echo $i;            // $i의 값 출력
    $i++;               // 1씩 증가
  }
?>

123456789가 출력됩니다.

do-while

문법

do {
  statement;
} while ( condition );

condition을 만족할 때까지 중괄호 안에 있는 statement를 실행합니다.

while은 조건 만족 여부를 먼저 검사하고 실행하는 반면, do-while은 실행을 먼저 하고 조건 만족 여부를 검사합니다.

예제

<?php
  $i = 1;                // 초기값 설정
  do {
    echo $i;             // $i의 값 출력
    $i++; // 1씩 증가
  } while ( $i < 10 );   // 조건을 만족하면 위의 코드 실행, 만족하지 않으면 빠져나감
?>

123456789를 출력합니다.

for

문법

for ( expr1; expr2; expr3 ) {
  statement;
}

expr1을 실행합니다.

expr2를 만족하는지 검사합니다.

expr2를 만족하면 statement를 실행하고, expr3을 실행합니다.

expr2를 만족하지 않으면 빠져나옵니다.

중괄호 대신 콜론(:)과 endfor를 사용할 수도 있습니다.

for ( expr1; expr2; expr3 ) :
  statement;
endfor;

예제

<?php
  for ( $i = 1; $i < 10; $i++ ) {
    echo $i;
  }
?>

123456789를 출력합니다.

구구단 만들기

반복문 안에 반복문을 넣을 수 있습니다.

다음은 각 반복문으로 구구단의 1단부터 3단까지 출력하는 예제입니다.

<!doctype html>
<html lang="ko">
  <head>
    <meta charset="utf-8">
    <title>PHP</title>
    <style>
      body {
        font-family: Consolas, monospace;
        font-style: italic;
      }
      h1 {
        font-size: 20px;
      }
      table {
        width: 100%;
      }
    </style>
  </head>
  <body>
    <table>
      <tr>
        <td>
          <h1><code>while</code></h1>
          <?php
            $i = 1;
            while ( $i < 4 ) {
              $j = 1;
              while ( $j < 10 ) {
                echo $i . ' × ' . $j . ' = ' . $i * $j . '<br>';
                $j++;
              }
              $i++;
            }
          ?>
        </td>
        <td>
          <h1><code>do-while</code></h1>
          <?php
            $i = 1;
            do {
              $j = 1;
              do {
                echo $i . ' × ' . $j . ' = ' . $i * $j . '<br>';
                $j++;
              } while ( $j < 10 );
              $i++;
            } while ( $i < 4 );
          ?>
        </td>
        <td>
          <h1><code>for</code></h1>
          <?php
            for( $i = 1; $i < 4; $i++ ) {
              for( $j = 1; $j < 10; $j++ ) {
                echo $i . ' × ' . $j . ' = ' . $i * $j . '<br>';
              }
            }
          ?>
        </td>
      </tr>
    </table>
  </body>
</html>

PHP 강좌