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)
* 이동한 이유 :
* 원래의 위치 : 웹 공부 >>
* 이동후 위치 : 웹 공부 >> 웹 프로그래밍