본문 바로가기

STUDY/국비과정

[JAVA 웹 개발 공부] 국비지원 15일차 - 배열의 선언과 생성, 배열의 길이와 인덱스, 배열의 초기화

배열

 

같은 타입의 여러 변수를 하나의 묶음으로 다루는 것을 '배열(array)'이라고 한다.

변수 대신 배열을 이용하면 다뤄야할 데이터의 수가 아무리 많아도 배열의 길이만 바꾸면 되기 때문에 많은 양의 데이터를 손쉽게 다룰 수 있다.

 

 

배열의 선언과 생성

 

원하는 타입의 변수를 선언하고 변수 또는 타입에 배열임을 의미하는 대괄호[]를 타입 뒤에 붙인다.

배열을 선언한 다음에는 배열을 생성해야 한다.

배열을 선언하는 것은 단지 생성된 배열을 다루기 위한 참조변수를 위한 공간이 만들어질 뿐이고,

배열을 생성해야만 비로소 값을 저장할 수 있는 공간이 만들어지는 것이다.

배열을 생성하기 위해서는 연산자 'new'와 함께 배열의 타입과 길이를 지정해 주어야 한다.

 

타입[] 변수이름; // 배열을 선언 (배열을 다루기 위한 참조변수 선언)
변수이름 = new 타입[길이]; // 배열을 생성 (실제 저장공간을 생성)
타입[] 변수이름 = new 타입[길이]; // 배열의 선언과 생성

 

 

배열의 길이와 인덱스

 

생성된 배열의 각 저장공간을 '배열의 요소(element)'라고 하며, '배열이름[인덱스]'의 형식으로 배열의 요소에 접근한다.

인덱스(index)는 배열의 요소마다 붙여진 일련번호로 각 요소를 구별하는데 사용된다. 인덱스는 1이 아닌 0부터 시작한다.

배열의 길이는 '배열이름.length'를 통해서 배열의 길이에 대한 정보를 얻을 수 있다.

배열은 한번 생성하면 길이를 변경할 수 없기 때문에, 이미 생성된 배열의 길이는 변하지 않는다.

따라서 '배열이름.length'는 상수다. 즉, 값을 읽을 수만 있을 뿐 변경할 수 없다.

 

 

배열의 초기화

 

배열은 생성과 동시에 자동적으로 자신의 타입에 해당하는 기본값으로 초기화되므로 배열을 사용하기 전에 따로 초기화를 해주지 않아도 되지만, 원하는 값을 저장하려면 각 요소마다 값을 지정해줘야한다. 

// 배열의 초기화 1
int[] score = new int[5];
score[0] = 50;
score[1] = 60;
score[2] = 70;
score[3] = 80;
score[4] = 90;
// 배열의 초기화 2
int[] score = new int[5];
for (int i = 0; i < score.length; i++) {
	score[i] = i * 10 + 50;
}
// 배열의 초기화 3
int[] score = new int[] {50, 60, 70, 80, 90};
// 배열의 초기화 4
int[] score = {50, 60, 70, 80, 90};

 

*길이가 0인 배열

int[] score = new int[0];
int[] score = new int[] {};
int[] score = {};

 

 

 

배열 연습하기

 

1. 배열 선언과 생성

 

2. 배열의 초기화, 배열의 길이

 

3. 배열의 출력

 

4. 배열의 활용(1)

 

5. 배열의 활용(2)

사용자에게 5개의 정수를 입력받아 최근 입력한 순으로(역순) 출력하기

 

6. 배열의 활용(3)

사용자에게 정수를 반복해 입력받고, 0이하의 정수를 입력하면 최근 5개의 정수를 출력하기

 

7. 배열의 활용(4)

배열의 원소 개수 구하기

배열의 원소 합, 평균 구하기

 

8. 배열의 활용(5)

사용자에게 정수의 개수를 입력받고 개수만큼 정수를 입력받아서

합, 평균을 구하는 프로그램

 

9. 배열의 활용(6)

 

*for-each문

처음부터 끝까지 하나씩 원소를 살펴볼때 사용한다.

인덱스 번호로 보는 것이 아니기 때문에 역순이나 다른 순서는 안된다.

여러개의 값을 가지고 있는 자료를 읽기용도로만 사용하고, 값을 변경하는 동작은 하지 않는 편이 좋다.