웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
[동주아빠] PHP 게시판 만들기 기초 (5) 제어문(下)
2002.12.25 15:07
이번 시간에는 for문, break, continue, switch 문 등에 대해 알아 보겠습니다.
for 문은 실제 프로그래밍에서 반복문으로 매우 많이 사용됩니다. 나머지 break, continue, switch 문도 매우 유용하게 사용할 수 있습니다.
간단한 예제를 통해 위의 제어문들에 대해 꼭 이해하고 넘어가는 시간이 되었으면 좋겠습니다.
![](http://www.itmembers.net/images/bar01.gif)
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를 사용하지 않았습니다.</ol>
프로그래밍을 정말 처음으로 접한 분이라면 이번 시간의 내용이 어렵게 느껴질 수도 있습니다. 제가 '이런 것은 C와 비슷합니다.'라고 말하는 것이 아무런 의미없이 다가오는 분이 분명 있을 겁니다. 그러면 그냥 무시하고 넘어가세요. 열번의 설명보다 실제 코드를 스스로 열번 뚫어지게 쳐다보는 것이 더 중요합니다. 그러면 자연스레 이해가 되게 되어 있습니다.
이상 동주아빠 손병목이었습니다.
for 문은 실제 프로그래밍에서 반복문으로 매우 많이 사용됩니다. 나머지 break, continue, switch 문도 매우 유용하게 사용할 수 있습니다.
간단한 예제를 통해 위의 제어문들에 대해 꼭 이해하고 넘어가는 시간이 되었으면 좋겠습니다.
![](http://www.itmembers.net/images/bar01.gif)
1.for 문
for 문은,
for (표현식1 ; 표현식2 ; 표현식3)
명령문과 같은 식으로 사용됩니다.
여기서 표현식1은 for 문을 시작할 때 처음 실행되는 식입니다.
표현식2는 검사 조건을 나타내는데 표현식2가 참일 경우에만 명령문이 실행됩니다.
표현식3은 반복이 끝나고 실행되는 식입니다.
1부터 10까지의 합계를 구하는 프로그램을 while 문과 for 문을 이용해 만들어 보고 그 차이점을 살펴 봅시다.
![](http://www.itmembers.net/lecture/php07-1.gif)
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를 만나면 반복문의 처음으로 되돌아 갑니다.
간단한 예제를 통해 직접 눈으로 확인해 봅시다.
![](http://www.itmembers.net/lecture/php07-2.gif)
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
명령문
}와 같이 사용합니다.
![](http://www.itmembers.net/lecture/php07-3.gif)
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를 사용하지 않았습니다.</ol>
프로그래밍을 정말 처음으로 접한 분이라면 이번 시간의 내용이 어렵게 느껴질 수도 있습니다. 제가 '이런 것은 C와 비슷합니다.'라고 말하는 것이 아무런 의미없이 다가오는 분이 분명 있을 겁니다. 그러면 그냥 무시하고 넘어가세요. 열번의 설명보다 실제 코드를 스스로 열번 뚫어지게 쳐다보는 것이 더 중요합니다. 그러면 자연스레 이해가 되게 되어 있습니다.
이상 동주아빠 손병목이었습니다.
댓글 10
제목 | 글쓴이 | 날짜 |
---|---|---|
슬라이딩 레이어 메뉴!! 메뉴가 상하로 따라다녀요!! [4] | TiZa | 2007.02.03 |
[동영상강좌] 홈페이지에 BGM을 달아보자 [5] | 서기 | 2007.01.10 |
처음 만들어본 자바 스크립트.. 나이 알아 맞추기 [2] | 김동헌 | 2006.12.05 |
로딩 레이어 만들기 [6] | 이진수 | 2006.11.27 |
도트 이모티콘 생성기 [21] | 예뜨락 | 2006.10.30 |
context menu - 마리홈 이름 팝업 레이어 [3] | 예뜨락 | 2006.10.30 |
셀렉트 박스를 이용한 콘트롤 만들기 ( 아래로 이동 ) | 예뜨락 | 2006.10.30 |
셀렉트 박스를 이용한 콘트롤 만들기 ( 위로 이동 ) [1] | 예뜨락 | 2006.10.30 |
고글검색하기!! [7] | 김민환 | 2006.10.30 |
앗!! 내별!! 내별날라가네 [3] | 김민환 | 2006.10.14 |
홈페이지의 필수!! 뮤직 플레이어!! [3] | 김민환 | 2006.10.14 |
졸리시면 이것을 한번 써보세요.......(큰창 필수!!)지진이다 [2] | 김민환 | 2006.10.14 |
앗 불꽃놀이다 구경가자 [3] | 김민환 | 2006.10.14 |
즐겨찾기 추가방법 [2] | 김민환 | 2006.10.10 |
당신은~째 방문자 이십니다.<카운터> [11] | 김민환 | 2006.10.10 |
위의 메뉴에 마우스를 올리면 밑에 메뉴가 나오는 소스 [1] | 김민환 | 2006.10.10 |
일반 시간...... [1] | 김민환 | 2006.10.10 |
{로그인}관리자 로그인 폼 간단함 [2] | 김민환 | 2006.10.10 |
배경 음악 연주기(다기능/스틱형) [1] | 이민주 | 2006.10.09 |
로또 번호 생성기 허접..ㅋㅋ [5] | 삐따기 | 2006.10.04 |