반복문은 어떠한 명령문을 여러번 반복적으로 실행하고 싶을때 사용한다.
가령 섬네일 목록을 만들고 싶을 때 가로로 5개 세로로 10개의 같은 기능의 섬네일을 복제하여 배치하고자 할때 이 50개를 일일이 만들어 붙이는 개발자는 없을 것이다. 이러한 반복적인 수행이 필요할 때 반복문을 사용한다.

1) for문
일반적으로 가장 많이 사용하는 반복문이며, while문보다 사용법이 간단하다.
- 구조식
for( 초기화문장; 검사식; 갱신문장 ){
   명령문(순환문 본체)
}

for 은 기본적으로 위와 같은 구조를 갖고 있으며 검사식과 갱신문장을 통해 실행회수를 정할 수 있다.
- 초기화 문장 : 주로 숫자형 변수를 사용하여 값을 초기화 시킨다.
- 검사식 : 조건체크를 하여 만족하면 명령문을 실핼 시킨다.
- 갱신문장 : 명령문이 실행된 후에 초기화 문장에 사용된 값을 연산한다.
for( var i:int=0; i<10; i++ ){
    trace(i) //출력 : 0,1,2,3,4,5,6,7,8,9 까지 i의 증가값을 출력한다.
}

* 인터프리터의 과정
i의 값을 0으로 설정하고 검사식에서 10보다 작은지를 검사한다 만족하면 명령문 trace(i)를 실행하고
갱신문장인 i++을 실행하여 i의 값을 1증가 시킨다.
1이 증가된 i의 값을 다시 검사하고 만족하면 명령문을 실행한다. 그리고 다시 갱신문장에 의해 i를 1증가시킨다.
이러한 일련의 반복검사를 통해 검사식을 만족 못할 때 까지 실행한다.


위의 경우에는 반복문은 10회 실행한다. i=0일때 한번 실행하여 명령문을 실행하고 순환과정을 통해 i<10을 만족하는 값인 9를 마지막으로 10번의 실행은 종료된다.

* 실제로는 i는 10까지 증가한다. 이는 마지막 실행시 i는 9일때 갱신문장에 의해 i=10이 되고 이를 검사식에서
만족 못하여 실행이 종료되는것이다.
i:int;
for (i=0; i<10; i++) {
 trace(i); //출력 : 0~9
}
trace(i); //출력 : 10

위와 같은 코드를 보면 i값은 10이라는 수가 대입 되어 있다.

2) while문
주로 미리범위가 정해지지 않은 반복을 수행할 때 사용하며, for문처럼 조건검사에 의해 만족(true)하면 실행하고 거짓이면 순환/반복에서 빠져나오게 된다.

- 구조식
변수의 초기화
while(검사식){
   명령문
   갱신문장
}
while문을 구성하는 요소도 초기화와 검사식 갱신문장을 포함하고 있어야 한다. 각 기능은 for문에서
설명한 내용을 참고하면 된다.

var a:int=0
while( a < 10 ){
   trace(a) //출력 : 0~9
   a++
 }
for문과 다르게 각 요소의 문장들이 분리되어 실행하도록 되어있다.

* do while : 실행 코드블럭을 do{}라고 묶어서 실행한다.
var a:int=0;
do{
    trace(a);//출력 : 0~9
    a++;
 }
while ( a < 10 )
 
이와 같은 반복문은 실행속도가 엄청빠르기 때문에 바로 결과를 얻을 수 있는 곳에 사용한다. 가령 위에서 언급했던 섬네일을 가로/세로 배치하여 view를 생성하거나 게시판의 목록과 같은 것을 만들 때 사용한다.
일정시간 후 순차적으로 실행하기 위해서는 EnterFrame이벤트나 Timer라는 클래스를 사용하여야 한다.

Posted by 버터백통