# 배열이란
무엇인가요?
sehongpark님의 답변
## 배열이란
배열이란, 여러 값을 담는 **순서가 있는 변수**입니다.
배열의 값은 순서(**index**)를 가지며, 모두 **같은 타입**이라는 특징이 있습니다. **인덱스는 `[0]`부터** 시작함을 주의하세요.
## 필요성
배열을 사용하면, 연관성있는 데이터를 관리하기 편리합니다.
아래는 99명의 학생 점수를 일일히 변수화한 코드입니다.
```
int student0 = 88;
int student1 = 72
...
int student99 = 96;
```
위 코드를 배열로 바꾸면 아래와 같이 변경할 수 있습니다.
```
int[] scores = {88, 72, ..., 96};
```
## 배열 생성법
배열의 생성법은 크게 2가지가 있습니다.
1) 생성과 동시에 초기화
```
int[] arr1 = {11, 22, 33, 44};
```
2) 먼저 생성 후, 개별 초기화
```
int[] arr2 = new int[4];
arr2[0] = 11;
arr2[1] = 22;
arr2[2] = 33;
arr2[3] = 44;
```
## 배열 사용법
배열내 값들은 변수명에 인덱스(index)를 표기하여 접근할 수 있습니다.
```
array[IDX]
```
배열의 길이는 `length`를 통해 얻을 수 있습니다.
```
int arr3 = {10, 20, 30, 40, 50};
System.out.println(arr3.length);
```
## 코드 예
```
// 0: 자바, 1: 수학, 2: 과학, 3: 영어
double[] grades = {4.5, 3.5, 4.0, 3.0};
// 자바 점수 읽기
System.out.println("자바 = " + grades[0]);
// 자바 점수 변경
grades[0] = 4.0;
// 평균 구하기
double sum = 0;
for (int i = 0; i < grades.length; i++) {
sum += grades[i];
}
double avg = sum / grades.length;
System.out.printf("평점: %.2f\n", avg);
```
## 참고자료
---
1. https://goo.gl/C3mFYC