요기보드3   필수기초 선택과목 요기보드 그누보드 로그인

P H P


while 반복문

▶ while 반복문
‘반복문’은 조건이 만족하는 동안 계속 뺑뺑 돌면서 반복되는 명령이야.
프로그램을 하다 보면 이 반복문은 if만큼이나 많이 사용되는데, 게시판에서 글 가져오기, 찾기같이 리스트 형태의 화면을 보여 주는 곳은 거의 대부분이 이 반복문을 사용하고 계산식에도 아주 중요하게 사용돼.

우선 while 반복문의 형태는 다음과 같아.

while (조건) {
    명령1 ;
    명령2 ;
    ... ;
}

예를 들어 어떤 프로그램에서나 가장 많이 사용하는 연습인 1부터 10까지 더하는 계산을 해 볼까?


<?php
  $num = 1 ;
  $sum = 0 ;
  while ($num <= 10) {
      $sum += $num ;
      $num++ ;
  }
  echo "1부터 10까지의 합은 $sum" ;
?>

코드는 충분히 대충 감이 잡히지?
$num 변수의 초기값을 1로 하고 while문 안에서 한 번 돌 때마다 $num값을 1씩 증가시키면서 이 값을 $sum 변수에 누적시키는 코드야.
while문의 조건이 $num <=10 ($num 값이 10보다 같거나 작다.)라는 조건이 맞으면 { } 사이를 계속 반복하는 거야.

[$sum += $num] 코드는 [$sum = $sum + $num] 을 줄여서 쓴 형태야. 즉, 이전 $sum 값에 $num 값을 더하라는 뜻이야.
그리고 [$num++]은 [$num = $num + 1]을 줄여 쓴 형태야.
이 두 가지 더하기 형식은 프로그램에서 하도 많이 쓰여서 타이핑을 조금이라도 줄이고자 이런 기호로 줄여서 사용해.

처음에 $sum 값은 0이고 $num값은 1이었으니 처음 이 문장을 만나면 $sum=0+1이 되겠지?
두 번째 돌 때는 $sum=1, $num=2가 되었으니 $sum=1+2가 되겠지?
세 번째 돌 때는 $sum=3, $num=3이 되었으니 $sum=3+3이 될 것이고..
이렇게 결국 10바퀴째 가면 $sum 값을 1+2+3+…+9+10이 될 거야.

11번째 다시 반복 시작점인 while {로 가지만 이때는 $num값이 11이 되어서 조건이 맞지 않게 될 거야. 그러면 그때 비로소 반복문 끝인 } 밖으로 빠져나가는 거야.

이 반복문은 아주 유용한 명령이지만 잘못 사용하면 서버를 먹통 시키는 주요 원인이 되기도 해.
반복문의 조건을 잘못 지정하면 영원히 빠져나오지 못하고 계속 돌게 되거든..
예를 들어 위 반복문에서 기호를 잘못 써서 아래와 같이 작성했다고 생각해 봐.


while ($num >= 1) {
    ...  
    $num++ ;
}

$num 값은 처음에 1이고 한 번 돌 때마다 1씩 늘어나니 아무리 돌아도 $num >= 1 조건에 맞게 되잖아. 결국, 영원히 돌게 되겠지?
게다가 이런 실수는 php에서 오류도 주지 않아. 일부러 명령을 그렇게 내렸는 줄 알고 그냥 시키는 대로 묵묵히 계산하는 거야.

while문 이외에도 반복을 전문으로 하는 명령이 php에는 몇 개 더 있어.
for와 for each가 있어. 비슷한 역할인데 이것들은 앞으로 설명이 필요한 때가 오면 설명하도록 할게.


목차제 목조회
129
131
126
112
148
105
111
99
101
106
114
121
109
115