주간 베스트 월간 베스트 3개월 베스트 베스트 게시물
연길시 신화서점 조선말 도서

PHP 기초중의 기초 - (9) PHP 제어문

네로 | 2003.02.24 00:04:14 댓글: 0 조회: 538 추천: 3
분류웹 프로그래밍 https://life.moyiza.kr/itstudy/1758882
PHP 기초중의 기초 - (9) PHP 제어문

글쓴이 : 悲魂(비혼), 2000/07/29(토)

본 강좌의 내용은 PHP를 전혀 모르는 분, 이제 막 PHP 공부를 시작하는 분들을 위한 말 그대로 기초 내용만을 다루고 있습니다. 때문에 PHP를 어느 정도 이상 다루는
분들에겐 가치없는 글일수도 있습니다. 본 강좌는 내용의 수정이 없다면 자유로운 배포 및 이용이 가능합니다. 다만 본 강좌의 내용 중 틀린 부분이나 추가 및 삭제를 원
하는 부분이 있을 시에는 비혼의 조그만 세상(http://soulstar.new21.org/)이나 흑협의 PHP Tip(http://phptip.com/)의 게시판에 글을 남겨주시면 고맙겠습니다.


드디어! 기다리고 기다리던 순간이 왔습니다. PHP 프로그래밍에 있어 앞으로 가장 많이 사용하게 될 부분중의 하나, 바로 제어문입니다. 그럼 강좌를 시작하겠습니다.


1) if 문

if, if...else, if...elseif...else 세가지의 방법이 있습니다. 형식과 예제를 통해 if 문에 대하여 자세히 알아볼까요?

형식1) if

if(조건식) {
실행할 명령;
실행할 명령;
}

조건이 참인 경우 {} 안의 명령들을 실행하게 됩니다. 예제를 들어볼까요?


<?php
//exam9-1.php
$a = 5;
if($a>0) {
echo "a의 값은 $a 입니다.
n";
echo "a는 양수입니다.n";
}
?>

$a의 값이 0보다 크면 그 값과 함께 양수임을 표시하는 초간단 예제였습니다. 생각외로 간단하죠? 지금까지의 강좌에서 심심찮게 보아오셨기 때문에 이해는 금방 하셨
을 겁니다. 만약 중괄호({}) 내에 실행할 명령이 한줄이라면 중괄호는 생략이 가능합니다. 즉 아래처럼 표현이 가능하겠죠.


<?php
//exam9-2.php
$a = 5;
if($a>0) echo "a = $a, (양수)n";
?>


형식 2) if ... else

if(조건식) {
실행할 명령; // 참인경우
실행할 명령;
}
else {
실행할 명령; // 거짓인 경우
실행할 명령;
}

이런 경우에는 조건식이 참이냐 거짓이냐에 따라 해당 블록의 명령들을 실행합니다. 예제를 들어볼까요...?


<?php
//exam9-3.php
$a = 5;
if($a>0) echo "a = $a, (양수)n";
else echo "a = $a, (음수)n";
?>

물론 조건에 따른 실행할 명령이 한줄이라 중괄호를 사용하지 않았을 뿐입니다.


형식 3) if ... elseif ... else

if(조건식1) {
실행할 명령들;
}
elseif(조건식2) {
실행할 명령들;
}
elseif(조건식3) {
실행할 명령들;
}
:
else {
실행할 명령들;
}

if...else에서는 하나의 조건에 대한 참과 거짓 판별을 통해 명령을 실행했는데 elseif를 사용하면 조건식을 여러번 부여할 수 있습니다. 이를 위해 좋은 예제를 준비했습
니다.


<?php
//exam9-4.php
$sung = "95";
if($sung>=95) echo "A+";
elseif($sung>=90) echo "A0";
elseif($sung>=85) echo "B+";
elseif($sung>=80) echo "B0";
elseif($sung>=75) echo "C+";
elseif($sung>=70) echo "C0";
elseif($sung>=65) echo "D+";
elseif($sung>=60) echo "D0";
else echo "F";
?>


점수에 따른 등급을 나타내는 간단한 소스입니다. 성적 관리 프로그램을 PHP로 작성할때 사용하면 좋겠죠? ^^; 첫번째 조건이 맞지 않으면 다음 조건을 비교, 또 그 다
음 조건을 비교해 만약 조건이 참이면 해당 명령을 수행하고, 모든 조건에 해당하지 않으면 마지막의 echo "F"를 실행하게 되는거죠. 여기서도 실행할 명령이 한줄이어서
중괄호를 생략했습니다.

아참! 참고입니다. 중괄호는 자유롭게 사용하셔도 됩니다.

if(조건식) {
실행할 명령;
}
else {
실행할 명령;
}

이것은 아래처럼도 표현 가능합니다.

if(조건식) { 실행할 명령; }
else { 실행할 명령; }

형식은 자유롭습니다. 개인 취향에 맞게 코딩해 보세요. ^^;


2) switch 문

형식을 간단히 알아보면 다음과 같습니다.

switch(변수) {
case 값:
실행할 명령;
default:
실행할 명령;
}

이 역시 예제를 이용하면 보다 이해가 빠를 것입니다.


<?php
//exam9-5.php
$a = 2;
switch ($a) {
case 1:
echo "1번을 선택하셨군요.";
break;
case 2:
echo "2번을 선택하셨군요.";
break;
case 3:
echo "3번을 선택하셨군요.";
break;
default:
echo "번호를 선택해 주세요.";
}
?>


소스를 가만히 보세요. 이 switch문을 어디에 써먹을 수 있을까 하구요.
break 를 사용하지 않으면 아래쪽의 명령까지 실행하므로 해당 항목만 실행하게 하려면 꼭 break를 써주셔야 합니다. 그리고 위의 예제에서 변수의 값이 숫자인 경우를
들었는데 문자인 경우에도 활용이 가능합니다.


<?php
//exam9-6.php
$a = "한국";
switch ($a) {
case "미국":
echo "미국에 사시는군요.";
break;
case "한국":
echo "한국에 사시는군요.";
break;
case "중국":
echo "중국에 사시는군요.";
break;
default:
echo "번호를 선택해 주세요.";
}
?>


만약 $a의 값이 지정되어 있지 않다면 default 문에 있는 명령이 실행됩니다.


3) while 문

if 문과 비슷하지만 while문은 조건이 참인 경우 실행할 블럭을 계속해서 실행하게 됩니다.


형식 1) while 문

while(조건식) {
실행할 명령들;
}

예제를 통해 어떻게 활용하는지 알아볼까요?


<?php
//exam9-7.php
$i=1;
while($i<=100) {
$sum += $i;
$i++;
}
echo "1부터 100까지의 합은 $sum 입니다.";
?>


먼저 $i 변수에 1 값을 넣어주고 while 문을 사용합니다. 조건은 $i의 값이 100보다 작거나 같을때 아래 문장을 실행하고[참인 경우], $i의 값이 100 이상이 되면 while 문
에서 벗어나게 됩니다.

while 문 내에서도 break 를 사용하면 조건에 관계없이 벗어날 수 있습니다.

while($i<=100) {
break;
echo "제어문 강좌중입니다";
}

위의 예제를 실행시켜 보면 화면엔 아무것도 나오지 않습니다. 왜 그런지는 스스로 살펴보세요.


형식 2) do...while 문

형식 1의 경우 조건이 바로 앞에 나와 조건이 거짓인 경우에 바로 while문 다음 문장이 수행되지만 do...while문에선 조건이 뒤에 나오기 때문에 최소한 한번은
do...while문 내에 있는 명령을 실행하게 됩니다. 형식과 예제를 올립니다.

do {
실행할 명령들;
} while (조건식);


<?php
//exam9-8.php
$i = 0;
do {
$sum += $i;
$i++;
} while ($i<=100);
echo "1부터 100까지의 합은 $sum 입니다.";
?>


만약 처음에 $i의 값을 200으로 지정해줬다면 실행결과가 어떻게 나올까요? 당연히 $sum에 $i의 값이 들어가고 아래 조건이 거짓이 되어 do...while문을 빠져나와 echo
문을 실행하게 되는 것이죠. 이해하셨죠...?


4) for 문

for문 역시 PHP 프로그래밍에서 가장 많이 사용하는 명령중의 하나입니다. 형식은 다음과 같습니다.

for(초기값; 조건식; 증가식) {
실행할 명령들;
}

형식만 보면 이해가 잘 안가시죠? 지금까지의 강좌 예에서 많이 보여드렸는데... 이해 가시죠? 하하. 이 역시 예제를 올려봅니다. 예제를 보면 이해가 금방 가죠?

<?php
//exam9-9.php
for($i=1;$i<=100;$i++) $sum += $i;
echo "1 + 2 + ... + 99 + 100 = $sum";
?>

중괄호를 사용할 수 있었느나, 실행할 명령이 한줄이나 생략하였습니다. 이미 다뤘던 내용이니 넘어가겠습니다.

아참. 가운데 조건식이 없다면 무한루프를 돌게 됩니다. 이런 경우에는 위에서 배우셨죠? break 문을 쓰면 됩니다.

for($i=0;;$i++) echo "$i "; // 예일 뿐이니까 실행하지 마세엽. 궁금하신 분들은 말리지 않겠어요. ^^;


5) break & exit

위에 switch문과 while문의 설명에서 잠깐 언급이 있었죠?

while(조건식) {
실행할 명령;
while(조건식) {
실행할 명령;
}
}

위와 같은 프로그램을 작성하였을 경우에 두번째 while문 내에 break 문을 사용하면 그 while문에서 벗어나게 됩니다. 가장 안쪽 루프(loop)만 벗어나는 거죠.

exit 문은 아예 프로그램을 중단합니다.

$a = 5;
exit;
echo $a;

어떤 결과가 나올까요? 바로 프로그램을 마치기 때문에 화면엔 아무런 값이 출력되지 않습니다.


6) 마무리

PHP 기초중의 기초 아홉번째 강좌를 마칩니다. 이젠 좀 앞이 환해졌나요?
궁금한거 있음 댓글 달아주세요~

그럼 즐겁게 PHP~


----------------------------------------------------------------------
PHP 기초중의 기초 - (9) PHP 제어문 : http://soulstar.new21.org/study/study9.htm
예제 확인 - http://soulstar.new21.org/study/exam9-1.php
예제 확인 - http://soulstar.new21.org/study/exam9-2.php
예제 확인 - http://soulstar.new21.org/study/exam9-3.php
예제 확인 - http://soulstar.new21.org/study/exam9-4.php
예제 확인 - http://soulstar.new21.org/study/exam9-5.php
예제 확인 - http://soulstar.new21.org/study/exam9-6.php
예제 확인 - http://soulstar.new21.org/study/exam9-7.php
예제 확인 - http://soulstar.new21.org/study/exam9-8.php
예제 확인 - http://soulstar.new21.org/study/exam9-9.php

* 전설님에 의해서 게시물 이동되었습니다 (2004-05-30 17:07)
* 이동한 이유 :
* 원래의 위치 : 웹 공부 >> 웹 프로그래밍
* 이동후 위치 : 웹 공부 >>

* 전설님에 의해서 게시물 이동되었습니다 (2004-05-30 17:12)
* 이동한 이유 :
* 원래의 위치 : 웹 공부 >>
* 이동후 위치 : 웹 공부 >> 웹 프로그래밍
추천 (3) 선물 (0명)
IP: ♡.27.♡.234
3,006 개의 글이 있습니다.
제목 글쓴이 날짜 조회
관리자
2003-09-20
11940
관리자
2003-09-20
11488
관리자
2003-09-20
20621
지구인
2010-08-27
19413
지구인
2009-09-07
13735
SOLIDH
2010-01-29
15692
엔죠라이프
2004-10-07
16784
네로
2003-02-24
629
네로
2003-02-24
562
네로
2003-02-24
1122
네로
2003-02-24
653
네로
2003-02-24
438
네로
2003-02-24
477
네로
2003-02-24
470
네로
2003-02-24
425
네로
2003-02-24
386
네로
2003-02-24
437
네로
2003-02-24
425
네로
2003-02-24
427
네로
2003-02-24
525
네로
2003-02-24
514
네로
2003-02-24
1442
네로
2003-02-24
718
네로
2003-02-24
568
네로
2003-02-24
538
네로
2003-02-24
675
네로
2003-02-24
628
네로
2003-02-24
489
모이자 모바일