회원가입∴아이디/비번찾기
홈으로


반복실행문
15년 전
자 이번엔 반복문 입니다...

반복문이라는건 말 그대로 똑같은 작업을 반복하게 만드는거죠...
물론 반복에는 어느선까지만...이라는 조건이 있고요..
이 조건이 잘못되면 컴터는 죽을때까지 반복을 합니다...(-_-무식하긴..)

반복문에는 크게~ for와 while이 있습니다...
(뭐 또 다른게 있긴하죠?;;;)
암튼...for만 알아도 반복문은 끝납니다...

우선 for의 문법은...

for(초기값;조건;증가값)
{실행문}

위와 같습니다.
임의의 변수에 초기값을 주고 한번 반복할때마다 증가값만큼 증가하면서
조건에 맞으면 그만두는거죠;;; 예제를 봅시다...

test.php를 꺼내시고...소스를 다음과 같이 수정합니다.

<?
for($i=0 ;$i<5 ;$i++)
{$a++;}
echo $a;
?>

초기값으로 $i에다가 0을 줬죠...그리고 조건에서 $i<5 즉, $i가 5보다 작을때까지 입니다.....0이니까 5보다 작죠?...
그래서 { }를 한번 실행합니다....$a에는 값이 없었으니 $a++이니까 1이 되겠죠...
다시 올라갑니다....올라가면서 증가값만큼 $i가 증가하죠..$i++이니까 이제 $i는 1입니다.

자~ 다시 한바뀌 돌죠....$a++이니까 $a는 3가 되죠...
다시 올라가서 $i는 3이 되고...5보다 작으니까 또 돌죠...

그럼 이제 $a는 4가되죠...다시 올라가서 $i는 4....5보다 작으니까 또 돌고..
$a=5가 되었습니다.....다시 올라가서 $i는 5가 되죠.....
또 돌까요?......
아니죠..^^ 조건에서 $i<5 니까 5<5는 거짓이죠....
그래서 for문을 빠져나옵니다...

결국 화면에는 5가 찍히는거죠...;;

복잡하게 생각할것 없습니다.....
그냥 단순히 조건이 참인 동안만 죽어라 반복합니다.

보통 어느 언어를 배우든 반복문의 예제로 1부터 100까지의 합을 구하는걸 많이 하는데......우리도 한번 해보죠;;;

<?
for($i=1;$i<=100;$i++)
{$a=$a+$i;}
echo $a;
?>

쉽죠?....이렇게 하면 1부터 어디 까지든 더할수 있습니다.
구지 설명하자면 $i가 1부터 100까지 도는 거죠...
$a에는 이전의 자기 자신과 $i가 더해지는 겁니다...
이해가 안가신다면...풀어서 한번 보죠;;;

   $a  $i  $a(최종값)
1) 0 + 1 = 1
2) 1 + 2 = 3
3) 3 + 3 = 6
4) 6 + 4 = 10
        .
        .

이해가 가시리라 믿습니다....
이제 좀더 재미난걸 해볼까요?...

이런경우가 가끔있죠....
메뉴페이지를 만드는데 메뉴 버튼이 10개가 있습니다.
버튼이미지이름은 1.gif부터 10.gif라고 하죠;;;
이럴때 for문으로 한번 돌려볼까요?

<?
for($i=1;$i<=10;$i++)
{
echo"<img src=${i}.gif><br>";
}
?>

결과는?

<img src=1.gif><br><img src=2.gif><br><img src=3.gif><br><img src=4.gif><br><img src=5.gif><br><img src=6.gif><br><img src=7.gif><br><img src=8.gif><br><img src=9.gif><br><img src=10.gif><br>

위와 같이 나오겠죠;;;
그런데 이럴때 이렇게 해주면 소스가 이뿌게 나옵니다.

<?
for($i=1;$i<=10;$i++)
{
echo"<img src=${i}.gif><br>
";
}
?>

echo문 끝에
를 추가했죠....이건 한줄을 띄우라는것입니다.
<br>이랑은 다른개념인데...텍스트문서에서 한줄띄우기로 보시면 됩니다.
결국
를 아무리 많이 쳐봐야 브라우져에서는 똑같습니다.
단지 소스에서 한줄씩 떨어지게 되는거죠;;;

자 이번엔 좀더 난이도 있는 예제를 해보도록하죠;;;
ㅡ.ㅡ구구단 입니다...

자~ 해보세요;;;;



-_-;;애매하죠?

2단부터 9단까지니까....2부터 9까지 돌리면 되겠는데;;;
그 속이 문제로군요;;; 천천히 봅시다....

우선 2단부터 9단까지 만들죠;;

<?
for($i=2;$<=9;$i++)
{ }
?>

됐습니다;;
그럼 이제 저 소스와는 따로....2단만 만들어 볼까요?

<?
for($k=1;$k<=9;$k++)
{echo "2 x $k = ".(2*$k);}
?>

맞죠? ($i가 아닌 $k로 준건은 위에것과 겹치는것을 방지하기 위해서입니다)
.(점연산자)로 합친것 뿐인데....결국은 2 x 1 = 2 , 2 x 2 = 4...이렇게 나가겠죠? (수식연산은 따옴표 밖에서 해야 됩니다)

그럼이제 이 두개의 for문을 합쳐버리죠;;;
두번째 것을 처음것 속에 넣으면 되겠습니다~~~~~합체!!!

<?
for($i=2;$<=9;$i++)
{
for($k=1;$k<=9;$k++)
{echo "2 x $k = ".(2*$k);}
}
?>

끝난게 아니죠....이렇게 실행하면 2단만 죽어라 나옵니다...
이렇게 바꿔줘야죠....2를 $i로...

<?
for($i=2;$<=9;$i++)
{
for($k=1;$k<=9;$k++)
{echo "$i x $k = ".$i*$k;}
}
?>

됐죠?....
모양도 이뿌게 하기 위해서....줄좀 띄워줄까요.?

<?
for($i=2;$<=9;$i++)
{
for($k=1;$k<=9;$k++)
{echo "$i x $k = ".$i*$k."<br>";}
}
?>

점연산자를 헷갈리지 마세요....
점으로 구분된 세 단락이 보이시죠?

("$i x $k = ")  ($i*$k)  ("<br>")

이렇게 말이죠....$i*$k에 따옴표를 안붙인 이유는 앞서 얘기했듯이...
따옴표속에서는 계산이 되지 않기 때문입니다.

자 그럼 이제 몇단 인지도 한번 찍어볼까요?
-_-엇;;;근데 어떻게 해야되죠?

-_,- 이렇게~

<?
for($i=2;$i<=9;$i++)
{
echo "<br>${i}단<br>";
for($k=1;$k<=9;$k++)
{echo "$i x $k = ".$i*$k."<br>";}
}
?>

-_-?됐죠?;;
자 이번엔 while문입니다....
형태는.....

while(조건)
{실행문}

위와 같습니다.....
그냥 조건이 참일 동안 반복하는것인데...for랑은 약간 다르죠?
1부터 100까지 한번 더해보죠;;

<?
$i=1;
while($i<=100)
{
$a=$a+$i;
$i++;
}
echo $i;
?>

$i에다가 1을 주고...while문에 들어갑니다....
100보다 작거나 같죠?..참이니까 한번 돕니다...
돌고 나면 $i++이니까 $i는 2가 되죠...
그럼 아까 for문에서 처럼 돌게 되는거죠...
돌다가 돌다가......$i가 101이 되는순간 while문을 빠져나옵니다..

반복문은 하다보면 재밌고도 -_- 짜증납니다...
이해를 하셔야 겠죠;;;
추천추천 : 585 추천 목록
번호 제목
2,891
입력 필드에서 특정단어(예:#err)가 포함되었을 때 실시간 감지 및 경고창 띄우기
2,890
데이터베이스 최적화와 쿼리 효율성을 높이 검색 성능을 개선하는 방법
2,889
간단한 게시판 만들기
2,888
PHP의 php.ini 파일에서 설정할 수 있는 주요 항목들을 카테고리별로 정리
2,887
유튜브 동영상의 썸네일 이미지를 체크하여 유효한 영상이아닐때 연결된 체크박스를 자동으로 체크
2,886
이미지 URL이 유효하지 않을 때, 해당 이미지와 연결된 체크박스를 자동으로 체크
2,885
HTTPS로 접속한 사용자를 강제로 HTTP로 리디렉션 하려면
2,884
PHP에서 MP3 파일을 직접 읽고 스트리밍 하기
2,883
현재 페이지가 location.reload()에 의해 새로고침되었는지
2,882
텍스트 파일을 읽고, 각 줄의 끝에서 6글자를 삭제한 후, 결과를 새로운 파일에 저장합니다.
2,881
cURL을 사용하여 리다이렉트를 따라가 최종 URL 가져오기
2,880
[PHP] $_SERVER 환경변수
2,879
10진수 <-> 16진수 변환기 PHP소스
2,878
텍스트에 직접 그라데이션 색상을 적용하려면?
2,877
CSS를 사용하여 요소의 내용물에 따라 width를 조정하는 방법
2,876
웹서버 ip 확인
2,875
웹호스팅의 절대경로를 확인
2,874
input 입력 필드 앞뒤 공백 실시간 제거
2,873
Placeholder 포커스시 감추기
2,872
MySQL 중복된 데이터를 삭제
2,871
MySQL 중복 데이터 확인
2,870
sessionStorage.getItem 와 sessionStorage.setItem
2,869
제이쿼리 랜덤으로 배경색 변경
2,868
preg match에 관한 정규식
2,867
Stream an audio file with MediaPlayer 오디오 파일 스트리밍 하기
2,866
Audio Streaming PHP Code
2,865
PHP $ SERVER 환경 변수 정리
2,864
Vimeo (비메오) API 를 사용하여 플레이어 컨트롤하기
2,863
iframe 사용시 하단에 발생하는 공백 제거방법
2,862
아이프레임(iframe) 전체화면 가능하게 하기
목록
뮤직트로트 부산광역시 부산진구 가야동 ㅣ 개인정보취급방침ㅣ모바일버전
Copyright ⓒ musictrot All rights reserved.