본문 바로가기

자바 (Java)/요약

Chpt. 5 배열 - 주제 1. 배열은 변수의 모음

728x90

만약 전교생의 영어 점수를 다룰 때 변수로 다루려면 각각의 변수에 모두 이름을 부여해야 하는 등 여간 불편한 일이 아닐 것이다. 따라서 같은 종류, 즉 타입이 같은 변수들을 한번에 다루기 위해 배열이 도입됐다. 

 

 

[그림1]

 

영어 점수를 저장할 수 있는 배열을 다음과 같이 만들면 배열에 접근할 수 있는 참조 변수에 이름 (engScore)을 붙이고 인덱스([0], [1], ...)를 통해 engScore[0]과 같이 값에 접근한다. 이때 배열의 각 값을 요소라고 한다. 또한 인덱스의 범위는 0부터 배열의 길이 - 1이다. 배열의 길이는 변수.length 상수 (변하지 않는 변수)를 통해 구할 수 있다. 

 

1. 배열의 선언과 생성 그리고 초기화

 

1) 배열의 선언과 생성

선언과 동시에 생성이 되는 변수와 달리 배열은 선언과 생성이 분리가 되어있다. 배열의 선언에는 두 가지 방법이 있다.

 

타입[] 변수 이름; [예] int[] arr

타입 변수 이름[];  [예] int arr[]

 

[그림1]과 같은 배열을 선언하고 생성해보자. 배열의 생성은 new 연산자와 함께 배열의 길이를 지정해주어야 한다. 

 

int[] engScore; // 배열의 선언

engScore = new int[5]; // 배열의 생성

 

이렇게 배열의 선언과 생성을 따로 할 수도 있지만 다음과 같이 한번에 하는 것이 일반적이다.

 

int[] engScore = new int[5];

 

[참고]

int[] engScore = new int[]; 처럼 크기가 0인 배열을 선언할 수도 있다.

 

2) 배열의 초기화

배열을 선언하고 생성하면 [그림1]과 같이 해당 타입 (int)의 기본값 (0)으로 초기화된다. 원하는 값으로 지정해주려면 다음과 같이 3가지 방법이 있다. [그림1]의 예시를 참고해 설명하겠다.

 

(1) engScore[0] = 50;

(2) for문, 변수.length (배열의 생성이 바뀔 경우 유리)를 사용해 (1)을 반복

(3-1) int[] engScore = new int[]{50, 60, 70, 80, 90};

(3-2) int[] engScore = {50, 60, 70, 80, 90};

 

(2)를 사용할 때는 영어 점수에 일정한 규칙이 있어야 한다. 그렇기 때문에 (3)의 방법을 사용할 수도 있다. (3-2)처럼 new int[]를 생략할 수도 있지만 선언과 초기화를 분리할 경우 new int[]는 생략할 수 없다. 대부분의 경우 (3-1)를 사용한다.

 

2. 배열의 출력

배열을 출력하기 위해서는 for문을 사용하거나 Arrays.toString(배열 변수)을 출력하는 방법을 사용한다. Arrays.toString(배열 변수) 메서드 사용하지 않고 바로 배열 변수의 이름을 출력하면 "타입@주소"의 결과가 나온다. println(char 배열 변수) 메서드는 예외적으로 배열의 각 요소가 구분자 없이 출력된다.

 

3. 배열의 활용

1) 총합과 평균

2) 최대값, 최소값

3) 숫자 섞기, 로또번호 만들기 (Math.random() 사용)

반응형