-
[삼쾌한 IT강의] 자바 배열의 사용법과 향상된 for문JAVA/이론 2019. 1. 29. 16:10
안녕하세요! 삼쾌한 IT강의 백소라 강사입니다.
이번 포스팅에서는 자바에서의 배열 사용법에 대해 알려드리도록 하겠습니다.
1. 배열이란?
우리가 학생 30명의 점수를 저장하고 사용해야된다고 볼까요? 그럼 int형 변수를 30개를 선언하고 점수 30개를 각각의 변수에 저장해야하겠죠. 하지만 배열을 이용하면 간단하게 변수를 선언하고 데이터를 저장할 수 있습니다. 배열이라는건 '동일한 자료형 변수의 집합' 이기 때문이죠.
무슨말이냐구요? 아래의 그림을 한번 볼까요? 우리가 기존에 사용했던 int형 변수는 아래처럼 따로따로 저장이 되어있고 개별적인 존재죠.
하지만 배열은 아래 그림처럼 연속적으로 존재하는 데이터라고 보시면됩니다. 예를들어 aa라는 int형 배열을 선언했다면 aa라는 이름으로 우리가 연속적으로 데이터를 사용을 할수가 있습니다. 데이터의 개수는 우리가 지정해주는 크기만큼 사용이 가능하구요.
2. 배열의 선언과 초기화
자, 그럼 본격적으로 배열을 어떻게 선언하고 초기화하는지 살펴볼까요?
1번 방법
데이터타입[ ] 변수명 = new 데이터타입 [배열의 크기] ;
변수명[인덱스값] = '저장할 값';
int [ ] array = new array [5]; //먼저 배열을 선언하고 배열의 크기를 생성 해 줍니다.
array[0] = 1; //각각의 인덱스에 값을 대입 해줍니다.
array[1] = 2;
array[2] = 3;
array[3] = 4;
array[4] = 5;
1번 방법은 우리가 int형 변수를 선언해주고 초기화 해주는 것과 크게 다르지 않습니다. 'int 변수명' 으로 int형 변수를 선언해주었다면, int형 배열의 변수는 자료형(데이터타입)과 변수명 사이에 [ ]만 추가하고 new 연산자를 사용해서 배열을 생성해 주는게 추가된것이죠.
배열의 원소들을 대입해주는것도 int형 변수에 어떤 값을 대입 해 주는것과 크게 다르지않죠? 다만 배열은 우리가 크기를 지정해줬고, 연속된 데이터를 가지고있다는 특징때문에 인덱스값을 가집니다.
위에 array[0] 에서 0은 인덱스값입니다. 우리가 배열의 크기를 5로 줬다면 인덱스 값은 0부터 4까지. 즉 0부터 배열의 크기-1 까지의 인덱스 값을 갖게됩니다. 컴퓨터가 0부터 숫자를 세기때문에 인덱스 값이 0부터 시작이된다고 생각하면 편할 것 같습니다.
2번 방법
데이터타입 [ ] 변수명 = new 데이터타입 [ ] { 배열의 원소 } ;
int[ ] array = new int[ ] {1, 2, 3, 4, 5}; //배열의 선언과 초기화를 동시에 해줍니다.
1번 방법에 비해 더 간결하죠? 배열의 선언,생성과 동시에 중괄호를 사용해서 배열의 원소들을 한번에 초기화 해줄 수 있습니다.
3번 방법
데이터타입 [ ] 변수명 = { 배열의 원소 } ;
int[ ] array = {1, 2, 3, 4, 5}; //배열의 크기를 생략합니다.
2번과 3번의 차이점이 보이시나요? 3번 방법에서는 new 자료형[ ] 부분을 생략했습니다. 배열의 선언과 초기화를 한번에 해줄때는 이렇게 new 연산자를 생략할 수 있습니다.
3. 배열의 인덱스에 대해
array[0], array[1] 을 예로 들면 [ ] 안의 0과 1을 인덱스 값이라고 한다고했죠? 우리가 배열을 선언하면서 배열의 크기를 정해줄때는 사실 변수를 안써주는것이 좋습니다. 하지만 인덱스값으로는 변수를 써줄수가 있어요. 그래서 우리가 for문을 사용해서 배열에 들어있는 원소들을 순차적으로 출력하거나 어떠한 연산을 해주기 편리합니다. for문과 배열은 뗄레야 뗄 수 없는 관계라고 보시면 될거에요.
제가 이 얘기를 하는 이유! 바로 아래에서 다룰 향상된 for문 때문이죠.
4. 향상된 for문 (for each 문)
기존의 for문을 변형해서 배열의 크기만큼 반복시키면서 배열의 각 원소를 순차적으로 사용할 수 있도록 만든게 향상된 for문 즉 for each문입니다.
무슨말인지 감이 안잡히죠? 아래의 사용법을 보시고 예를 한번 들어볼까요?
사용 방법
for (자료형 변수 : 배열변수) {
//반복할 내용
}
for문 안에 자료형 변수, 배열 변수를 써주는데요. 배열의 변수가 가지고 있는 값들을 차례차례 자료형 변수에 대입하면서 for문 안의 내용을 반복합니다. 에를들어볼게요.
int [ ] num = { 1, 3, 5, 7, 9 } ;
int sum = 0;
for(int tmp : num) {
sum +=tmp;
}
System.out.println("배열 num 요소의 합은 : " +sum);
num이라는 int형 배열을 선언하고 값을 초기화를 해줬죠? 그다음에 향상된 for문에 콜론을 경계로 tmp라는 변수와 배열의 변수 num을 넣어줬습니다.
for문이 실행될 때 num이라는 배열이 가지고 있는 원소들이 차례로 tmp라는 변수에 대입이되고, for문 안에 있는 내용 즉 배열의 원소들의 합을 구하는 식이 반복됩니다.
향상된 for문이 어떤식으로 작동하는지 좀 이해가 되시나요?
배열에 대한 기초 이론과 향상된 for문은 여기까지 정리를 하겠습니다! 아래의 링크에서 실습을 하시면서 직접 사용법을 익혀보세요.
2019/01/29 - [JAVA/실습예제] - [삼쾌한 예제] 자바의 배열
이상 유쾌,상쾌,통쾌 삼쾌한 IT강의, 백소라 강사의 자바 배열과 for each문에 대한 설명이었습니다. 내용이 도움이 되셨다면 공감버튼 클릭, 댓글은 센스! 감사합니다.
'JAVA > 이론' 카테고리의 다른 글
[삼쾌한 IT강의] 자바 접근제어자 정리 (0) 2019.05.07 [삼쾌한 IT강의] 자바 charAt 사용하기 (0) 2019.01.30 [삼쾌한 IT강의] 자바 반복문의 의미와 종류 (0) 2019.01.22 [삼쾌한 IT강의] 자바 제어문(조건문)의 의미와 종류 (0) 2019.01.13 [삼쾌한 IT강의] 논리부정, 디지털 논리연산, 비트연산자 (0) 2019.01.13 댓글