0
 33   4   1
  View Articles

Name  
   손병목  (2002-03-27 00:33:54, Hit : 18189, Vote : 2156)
Homepage  
   http://www.itmembers.net
Subject  
   PHP 문법의 기초(4) - 제어문(下)
이번 시간에는 for문, break, continue, switch 문 등에 대해 알아 보겠습니다.
for 문은 실제 프로그래밍에서 반복문으로 매우 많이 사용됩니다. 나머지 break, continue, switch 문도 매우 유용하게 사용할 수 있습니다.
간단한 예제를 통해 위의 제어문들에 대해 꼭 이해하고 넘어가는 시간이 되었으면 좋겠습니다.


  1. for 문
    for 문은,
    for (표현식1 ; 표현식2 ; 표현식3)
    명령문
    과 같은 식으로 사용됩니다.
    여기서 표현식1은 for 문을 시작할 때 처음 실행되는 식입니다.
    표현식2는 검사 조건을 나타내는데 표현식2가 참일 경우에만 명령문이 실행됩니다.
    표현식3은 반복이 끝나고 실행되는 식입니다.

    1부터 10까지의 합계를 구하는 프로그램을 while 문과 for 문을 이용해 만들어 보고 그 차이점을 살펴 봅시다.

    1 : <?
    2 : //1부터 10까지의 합계를 while 문을 이용해서
    3 : $sum = 0 ;
    4 : $number = 1 ;
    5 : while ($number < 10 ) {
    6 : $sum = $sum + $number ;
    7 : $number = $number + 1 ;
    8 : }
    9 : echo "1부터 $number 까지의 합계 = $sum <br>";
    10 :
    11 : //1부터 10까지의 합계를 for 문을 이용해서
    12 : $sum = 0 ;
    13 : $number = 1 ;
    14 : for($number = 1 ; $number < 10 ; $number++) {
    15 : $sum = $sum + $number;
    16 : }
    17 : echo "1부터 $number 까지의 합계 = $sum";
    18 : ?>

    14행이 핵심이죠.
    먼저 $number=1 이 먼저 실행됩니다. 그리고 $number < 10인지 검사합니다. 만약 참이면 $sum=$sum+$number가 실행됩니다. 그리고 $number++이 실행됩니다. 그리고 다시 $number < 10인지 검사하여 참이면 $sum=$sum+$number가 실행됩니다.
    10까지의 합계를 구하려면 이런 식으로 하는구나하는 정도의 논리적인 해결은 할 줄 알아야 합니다. 이해될 때까지 보시구요.
    참, 여기서 $number++$number=$number+1과 같은 뜻입니다.


  2. break 문과 continue 문
    break를 만나면 for, while, switch 등의 반복문을 빠져나갑니다.
    반대로 continue를 만나면 반복문의 처음으로 되돌아 갑니다.
    간단한 예제를 통해 직접 눈으로 확인해 봅시다.

    1 : <?
    2 : // break 문을 이용하여 반복문 빠져 나가기
    3 : $sum = 0 ;
    4 : $count = 1;
    5 : while(TRUE) {
    6 : $sum = $sum + $count ;
    7 : $count = $count + 1 ;
    8 : if ($count == 10) break ;
    9 : }
    10 : echo "1부터 $count 까지의 합계 = $sum <br>";
    11 :
    12 : // 1부터 10까지의 정수 중 홀수의 합계 구하기
    13 : $sum = 0;
    14 : $count = 0;
    15 : while ($count < 10) {
    16 : $count++ ;
    17 : if($count % 2 == 0) continue;
    18 : $sum = $sum + $count ;
    19 : }
    20 : echo "1부터 $count 정수 중에서 홀수의 합 = $sum ";
    21 : ?>

    5행을 보면 조건이 무조건 참인 것을 알 수 있습니다. 이것은 무조건 반복하라는 뜻입니다. 그리고 반복문 안에서 break 문을 사용해서 빠져나가게 됩니다.(실무에서도 이런 식으로 자주 사용합니다.)
    8행을 보면 $count가 10이면 반복문을 빠져나가는 것을 알 수 있습니다.
    17행을 보면 $count를 2로 나눈 나머지가 0이면, 즉 2의 배수(짝수)이면 18행을 실행하지 말고 15행으로 다시 돌아가라는 뜻입니다.
    16행의 $count++은 $count=$count+1과 같은 뜻입니다.
    비슷한 방식으로 18행의 $sum=$sum+$count를 $sum+=$count로 바꿔서 사용해도 됩니다. (이런 것은 모두 C언어의 연산자를 그대로 이어받은 경우라고 할 수 있습니다.)

  3. switch 문
    switch 문은 여러 개의 if 문을 사용하는 것과 비슷한 효과를 냅니다.
    형식은,
    switch(표현식) {
    case 표현식1 :
    명령문1
    case 표현식1 :
    명령문1

    default
    명령문
    }
    와 같이 사용합니다.

    1 : <?
    2 : $number = 10 ;
    3 : switch ($number) {
    4 :         case $number < 0 :
    5 :                 echo "$number 는 음수입니다.";
    6 :                 break;
    7 :         case 0 : // case $number == 0; 과 동일함
    8 :                 echo "$number 는 0입니다.";
    9 :                 break;
    10 :         case $number > 0 ;
    11 :                 echo "$number 는 양수입니다.";
    12 :                 break;
    13 : }
    14 : ?>

    3행의 $number의 값을 기준으로 case 문에서 일치하는 값이 있으면 그 명령문을 실행합니다.
    만약 해당 사항이 없을 경우 default의 명령문을 실행하는데 여기서는 default를 사용하지 않았습니다.


프로그래밍을 정말 처음으로 접한 분이라면 이번 시간의 내용이 어렵게 느껴질 수도 있습니다. 제가 '이런 것은 C와 비슷합니다.'라고 말하는 것이 아무런 의미없이 다가오는 분이 분명 있을 겁니다. 그러면 그냥 무시하고 넘어가세요. 열번의 설명보다 실제 코드를 스스로 열번 뚫어지게 쳐다보는 것이 더 중요합니다. 그러면 자연스레 이해가 되게 되어 있습니다.

벌써 수요일 새벽입니다. 지치지 말고 주말을 바라보고 힘차게 생활했으면 좋겠습니다.
이상 동주아빠 손병목이었습니다.


손병목
위 코드 중에서
for($number = 1 ; $number < 10 ; $number++) {
에서, $number < 10$number <= 10로 정정합니다.
 2002/12/26 01:17:00    

손병목
마찬가지로 while 문에서도
while ($number < 10 ) {

while ($number <= 10 ) {
로 정정합니다.
 2004/03/01 17:08:39    

손병목
1부터 10까지의 합을 45라고 하다니... ㅋㅋ 전 아무래도 도올머리인가 봅니다^^
1부터 10까지의 합은 55입니다. (화면의 그림도 55로 정정합니다...)
 2004/03/01 17:10:02    
Prev
   PHP 문법의 기초(5) - require와 include

손병목
Next
   PHP 문법의 기초(3) - 제어문(上)

손병목


Copyright 1999-2024 Zeroboard / skin by Zetyx