본문 바로가기

Java프로그래밍

객체기반SW설계 12차시: 배열과 for each문

반응형

배열 (Array)

배열선언
Java언어에서 배열을 사용하는 것은 2단계로 이루어진다.

예를 들어, 크기가 3인 int 배열 a를 선언한다고 가정해 보자.
1단계로, 배열을 가리킬 수 있는 변수 a부터 만들어야 한다.
int[] a; 
int[]는 int 배열형을 나타낸다.
여기에서 주의할 것은, a는 배열이 아니라는 것이다.
이것은 단지 배열을 가리킬 수 있는 변수일 뿐이다.
C언어와 비슷하게 다음과 같이 a를 선언해도 되지만,
그리 추천하지는 않는다.
int a[];
왜냐하면, 위의 표기 방식이 "int 배열형의 변수 a"라고 
보다 자연스럽게 읽히기 때문이다.
 
2단계로는 크기 3인 int배열을 만들고, 그 배열을 a로 하여금
가리키게 하는 것이다. 
a = new int[3];
new int[3]은 실제로 크기 3인 배열을 생성한다.
이 때 이것을 a에 대입하게 되면, 그 다음부터는 
a를 이용해서 이 배열에 읽고 쓸 수 있게 된다.

배열에 값을 쓰는 것은 다음과 같다.
a[0] = 10;
a[2] = 20;
C언어의 배열 사용하는 방법과 동일하다.
그리고 index를 사용할 때의 주의 점도 똑같다.
index는 0부터 시작하고, 크기 n보다 하나 작은 n-1까지 사용이 가능하다는 것이다.

또다른 배열선언 방법
위에서는 2단계로 나누어 배열을 선언하는 방법에 대해
설명했다.
하지만 이것은 아래와 같이 1단계로도 가능하다.
int[] a = new int[3];


배열의 초기화

배열을 선언함과 동시에 원하는 값들로 초기화시킬 수도 있다.

이것은 아래와 같이 할 수 있다.

int[] a = {1, 2, 3, 4, 5};

이것은 크기 5인 int배열을 만들고, 

값들로 1, 2, ..., 5를 채운 후, 변수 a에 대입한 것이다.


배열 각 요소에 순차접근

배열이 만들어지면, 그 요소들에 대해 순차적인 접근을 하기 위해서는

반복문을 이용하면 된다.

이를 위해서, for, while, do-while loop등을 이용할 수 있다.

int[] a = new int[3];

for (int i = 0; i < 3; i++)

{

   a[i] = i;

}


int[] a = {1, 2, 3};

int i = 0;

while (i < 3) 

{

   System.out.println(a[i]);

   i++;

}


for each 문

Java 언어는 배열요소들에 대한 순차접근 방법을 위해

'for each' 문을 제공한다.

위의 예제코드는 아래와 같이 for each문을 이용하여 구현될 수 있다.

int[] a = {1, 2, 3};

for (int i: a)

{

   System.out.println(i);

}

분석해 보면, 아래 그림과 같이,

변수 i에는 반복문이 실행될 때마다, a[0], a[1], a[2],... 이런 식으로

순차적으로 값이 바뀌게 된다.

따라서 위 프로그램은 결과적으로 배열 a에 들어있는 값을 순차적으로 출력하게 된다.



배열의 길이

배열의 길이는 배열 안에 저장할 수 있는 공간의 개수와 같다.

배열을 선언할 때 크기로 지정하는 값이 바로 길이라고 할 수 있는데,

이것은 배열의 이름에 .length 를 붙여서 알 수 있다. 

아래 프로그램에서 크기가 10인 배열 m을 선언하고,

각 요소마다 값을 지정하는 프로그램에서, 배열의 크기를 m.length로 지정하였다.



자세한 설명

위의 내용을 동영상에서 보다 자세한 예를 들어 설명합니다. 



반응형