# 배열
## 들어가며
---
이전 시간, 반복문에 대해 알아보았습니다.

이번 시간에는 여러 변수를 하나로 관리하는 방법에 대해 알아보도록 하죠.
## 배열의 필요성
---
아래는 9명의 학생 성적에 대한 변수입니다.
```
int score0 = 65;
int score1 = 74;
int score2 = 23;
int score3 = 75;
int score4 = 68;
int score5 = 96;
int score6 = 88;
int score7 = 98;
int score8 = 54;
```
이를 순서대로 출력하려면 어떻게 해야할까요? 반복문을 사용하면 뭔가 될 듯 하기도 합니다.
```
for (int i = 0; i < 9; i++) {
???
}
```
배열을 사용하면, 위 문제를 해결할 수 있는데요. 이를 위해 먼저 배열의 정의부터 알아보도록 하겠습니다.
## 배열이란
---
배열이란 여러 개의 변수를 하나로 묶은 자료형입니다.
```
int[] scores = {65, 74, 23, 75, 68, 96, 88, 98, 54};
```
위 코드는 배열을 생성하는 예인데요, 이를 그림으로 나타내면 아래와 같습니다.

그림을 자세히 보면 배열의 특징들을 찾을 수 있는데, 잠시 한 번 살펴볼까요? 찾으셨나요? … 이제 답을 발표하겠습니다. 배열에는 일반 변수와 달리 0부터 8이라는 **인덱스**(순서)가 존재하고, 또 *모두 같은 타입*이라 특징이 있습니다.
이러한 특징을 가진 배열! 어떠한 장점이 있을까요? 맞습니다. 연관된 변수를 배열로 묶어 놓으면 그만큼 편리한 프로그래밍이 가능합니다. 옷장에 양말, 속옷, 수건이 종류별로 잘 정리되어있다면 사용하기 편리한 것과 마찬가지인 거죠. 자세한 내용은 코드 실습 때 더 알아보겠습니다.
## 배열 만들기
---
배열이란 무엇인지 알아보았으니, 이제 직접 배열을 만들어볼까요? 배열을 만드는 방법은 크게 두 가지가 있습니다.
1. 생성과 동시에 초기화
2. 배열 틀 생성 후 값을 대입
먼저 생성과 동시에 초기화 하는 방법입니다.
```
# double타입의 배열([]) arr을 선언과 동시에 초기화
double[] arr = {1.5, 3.2, 4.3, 0.9};
```

다음으로 배열 생성 후 값을 대입하는 방법입니다.
```
# int형 배열([]) arr2를 4칸 길이로 생성
int[] arr2 = new int[4];
arr2[0] = 1; // 0번 인덱스에 1을 대입
arr2[1] = 3; // 1번 인덱스에 3을 대입
arr2[2] = 4; // 2번 인덱스에 4을 대입
arr2[3] = 0; // 3번 인덱스에 0을 대입
```

## 배열 사용하기
---
이렇게 생성된 배열은 변수명과 인덱스(순서)를 통해 값을 가져오거나 변경할 수 있습니다.
```
# 배열 값 가져오기
System.out.printf("%.1f", arr2[0]); // 1
System.out.printf("%.1f", arr2[3]); // 0
# 배열 값 변경하기
arr2[1] += 7; // 1번 인덱스에 7을 더함
System.out.printf("%.1f", arr2[1]); // 10
```
> 인덱스(순서)의 시작은 `0`임을 주의하세요.
## 요약
---
1. 배열이란, 여러 변수를 하나로 묶은 자료형이다.
2. 배열은 인덱스가 존재하고, 모두 같은 타입이다.
3. 배열을 만드는 방법은 크게 두 가지로 나뉜다.
- 생성과 동시에 초기화
- 배열 생성 후 값 대입
4. 배열의 요소는 인덱스를 통해 가져오거나 변경할 수 있다.
5. 배열의 인덱스는 0부터 시작한다.
## 확인하기
---
<div class="interact_responsive_padding" style="padding:100% 0 0 0;position:relative;margin-bottom:5px;"><div class="interact_responsive_wrapper" style="height:100%;left:0;position:absolute;top:0;width:100%;"><iframe id="interactApp5cc6594f3aa2410014c34536" width="100%" height="100%" style="border:none;max-width:100%;margin:0;" allowTransparency="true" frameborder="0" src="https://quiz.tryinteract.com/#/5cc6594f3aa2410014c34536/q/1?method=iframe"></iframe></div></div>