상상 너머 그 무언가...

배열 ( Array ) 에 대해 공부 해보자. 본문

개발관련(Development)/플래시(Flash)

배열 ( Array ) 에 대해 공부 해보자.

Clack 2010. 11. 9. 11:49

배열의 사전적 의미를 보자면...
 배열 [配列/排列]
[명사] 
1 일정한 차례나 간격에 따라 벌여 놓음.
2 동일한 성격의 데이터를 관리하기 쉽도록 하나로 묶는 일.

나누어 늘여놓다... 라는 의미이다.


일상생활에서 배열처럼 일정 간격으로 줄을 서있는 경우는 뭐가 있을까?

놀이공원에서 놀이기구를 타기위해 순서대로 타기 위해 줄을 서있는 경우가 있는데
반대로 놀이기구를 타기위해 사람들이 줄을 안서고 우굴우굴 모여있다면 어떻게될까?
놀이기구 직원 입장에서 보면 누굴 먼저 태워야 할지 다음에 누굴 태워야 하는지 판단할 수가 없을것이다.
이럴때
우글우글 모여있는 사람들을 줄을 세워놓으면 놀이기구 직원은 순차적으로 앞사람씩 탈 수 있는 인원수에 맞게
사람들을 관리하며 놀이기구를 운영할 수 있게 된다.

다시 정리하자면... 순번이 없거나 규칙이 없는 불특정 다수의 무언가를 관리하기 쉽게 하기위해 규칙을 부여하는것이다.

나영, 민정, 태희, 혜연 ... 이렇게 4명이 놀이기구 앞에 서있다면
놀이기구 직원은 이들 네명을 배열에 집어넣어 줄을 세울 수 있게 된다.
배열에 위의 4명을 넣어보자

놀이기구 순서 = [ 혜연, 나영, 민정, 태희 ]

위와 같이 줄을 세웠다면 가장 먼저 놀이기구를 타는 사람은 '혜연', 두번째는 '나영'이 된다.

위 문장을 액션스크립트로 옮겨보면

 var rides: Array = [ "해연", "나영", "민정", "태희" ];

rides 배열에서 첫번째 탑승자 이름을 알고 싶다면 rides[ 0 ] 을 참조하면 된다.
trace( rides[ 0 ] );    <=== 왼쪽과 같이 trace문을 사용해서 출력을 해보면 "혜연" 이 출력되는걸 볼 수 있다.
두번째 탑승자는 rides[ 1 ] 을, 세번재 탑승자는 rides[ 2 ]...

배열의 값에서 가장 앞에 있는 데이타에 접근하기 위해서는 1이 아닌 0으로 접근해야 하는데
컴퓨터 프로그래밍에 있어서 index는 대부분이 0으로 시작하기 때문에 그렇다.

자 그럼 놀이기구 앞에 앞의 4명이 줄서있는데 '희선'이 와서 '태희'의 다음에 놀이기구를 태우도록 해보자
배열의 맨 뒤에 어떤 값을 밀어넣어주는 push 메소드를 실행하면 가능하다.

 rides.push( "희선" );

위의 문장처럼 push문을 사용해서 희선을 배열의 맨 마지막에 넣고서
희선이 배열의 마지막에 잘 위치 하고 있는지 확인 해보러면
배열에 들어있는 값들을 index 순서에 맞춰 순차적으로 나열된 값을 주는 join 메소드를 실행하면 된다.

 trace( rides.join() );              //  혜연, 나영, 민정, 태희, 희선   으로 출력이 된다.

현재 놀이기구를 타기 위해 줄 서있는 사람이 몇명인지는 어떻게 구할까?
배열의 길이값을 가지고 있는 속성 length를 참조해보면 구할 수 있다.

 trace( rides.length );              // 5 가 출력된다.

이때 참을성 없는 '희선'이 기다리는게 싫어 다른 놀이기구를 타러 가버렸다면
탑승순서에서 '희선'을 다시 빼줘야 한다.
이럴땐 배열의 맨 뒤에서 어떤 값을 빼주는 pop 메소드를 사용하면 된다.

 rides.pop();

trace( rides.join() );        // 혜연, 나영, 민정, 태희   이렇게 4명만 출력된다.