홈으로
| 무료회원가입 | 아이디/비번찾기
추천음악방송
반복실행문
12년 전
자 이번엔 반복문 입니다...

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

반복문에는 크게~ 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문을 빠져나옵니다..

반복문은 하다보면 재밌고도 -_- 짜증납니다...
이해를 하셔야 겠죠;;;
추천추천 : 341 추천 목록
번호 제목
3,046
 Vimeo (비메오) API 를 사용하여 플레이어 컨트롤하기
3,045
 iframe 사용시 하단에 발생하는 공백 제거방법
3,044
 아이프레임(iframe) 전체화면 가능하게 하기
3,043
 부트스트랩(bootstrapk)에서 사용하는 class명 정리
3,042
 부트스트랩 CSS
3,041
 크롬에서 마진 조절
3,040
 PHP 현재 페이지의 도메인명이나 url등의 정보 알아오기
3,039
 PHP preg match all()
3,038
 PHP 로 웹페이지 긁어오기 모든 방법 총정리!
3,037
 [PHP] 원격지 파일 주소 노출 안하고 curl로 다운로드 받기
3,036
 PHP 함수 정리
3,035
 아이프레임(iframe) 비율 유지하면서 크기 조절하는 방법
3,034
 PHP 배열에서 무작위로 하나 뽑아주는 array rand() 함수
3,033
 PHP 정규식 정리
3,032
 PHP 정규식을 활용한 태그 및 특정 문자열 제거 및 추출 방법
3,031
 php 크롤링 또는 파싱 함수, 정규식 모음
3,030
 제이쿼리 기본 명령어
3,029
 웹페이지 가로 모드세로 모드 인식하기
3,028
 모바일 웹 화면 강제 회전(가로모드 고정)
3,027
 [HTML5]에서 frameset 대체 방법과 iframe 속성
3,026
 HTML <Audio> 사용법
3,025
 윈도우10 시스템파일 손상 (초간단 오류 복구방법!!)
3,024
 PHP 파일 존재 여부 파악하기(로컬 파일 존재 및 원격지 파일 존재)
3,023
 [CSS] 박스 세로 가운데 중앙 정렬 6가지
3,022
 CSS Layout 수평 & 수직 정렬
목록
뮤직트로트 부산광역시 부산진구 가야동 ㅣ 개인정보취급방침
Copyright (C) musictrot All rights reserved.