[IT국비지원교육_코딩_비전공자] 배열의 특징/ 배열의 선언과 생성
배열(array)이란 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것
'같은 타입'의 변수 라는 조건이 가장 중요하기 때문에
서로 다른 타입의 변수들로 구성된 배열은 만들 수 없다.
예를 들어 성적처리 프로그램을 작성한다고 가정했을때
여러 학생의 점수를 다루기 위해서는 각 변수(학생 점수)에 번호를 붙여서 점수를 저장해야 할텐데
학생수가 100명 혹은 1000명 정도로 많아지게 되면 일일이 다 변수를 선언해주기가 어렵다.
int score1 , score2, score3, score4, score5 ;
그렇기 때문에 우리는 오늘 배운 배열을 사용하여 같은 타입의 여러 변수들을
하나의 묶음으로 다룰 수 있게 되는 것이다. (많은 양의 데이터를 손쉽게 다룰 수 있음)
배열의 선언 예시
int [] score = new int[5];
→ int타입의 값 5개를 저장할 수 있는 배열 생성 예시 (배열은 같은 타입의 변수들로만 구성 가능)
→ 위의 문장이 실행되면 5개의 저장공간이 생긴다 (변수처럼 별도의 이름을 붙일 필요가 없고 자동으로 index가 생김)
→ 타입[ ] 배열이름 = new 타입[길이]
: (1) 배열을 다루기 위한 참조변수 선언 = (2) 실제 저장공간[길이]인 배열을 생성
배열의 특징
→ 값을 저장할 수 있는 공간은 score[0]부터 score[4]까지 모두 5개이다
→ 저장공간에 연속적으로 번호가 붙는다 (저장공간이 연속적으로 배치되어 있음)
: 각 저장공간 마다 이름이 없는 대신, 연속적인 번호(Index)가 붙는다 (Index는 0부터 시작한다)
(아무리 많아도 자동으로 score[index] 이름들이 만들어지기 때문에 변수처럼 일일이 이름을 붙여줄 필요가 없음)
→ 배열을 다루기 위해서는 참조변수가 필요하다
→ 참조변수에 이름을 붙이고 참조변수의 이름과 Index의 번호를 이용해 저장공간을 사용한다
(값을 저장하고 읽어오는 방법은 변수와 같음/ 변수 이름대신 배열이름[인덱스]를 사용한다는 점만 다르다)
→ 변수 score는 배열을 다룰 때 필요한 참조변수(객체)일 뿐 값을 저장하기 위한 공간은 아니다
배열의 선언과 생성
배열의 선언 ( 타입[ ] 배열이름 )
원하는 타입의 변수 선언 + 변수 타입 뒤에 배열을 의미하는 대괄호[] 표기
배열의 생성 ( new 타입[길이] )
연산자 new + 앞서 선언한 배열의 타입과 저장공간 길이를 지정
=> 타입[ ] 배열이름 = new 타입[길이]
다음의 예시로 배열의 선언과 생성 과정을 좀 더 자세히 살펴보자
int [] score = new int[5];
1) int [ ] score ;
int형 배열 참조변수 score를 선언 / 아직 데이터를 저장할 수 있는 공간은 없다
2) score = new int [5] ;
연산자 'new'에 의해 메모리의 빈공간에 5개의 int형 데이터를 저장할 공간이 생성된다
3) 각 배열요소는 자동적으로 int의 기본값(default)인 0으로 초기화 된다
* default 값이 0인 이유는, PC를 처음 구입했을 때 제품 전원off 상태가 기본인 것을 바탕으로 이해할 수 있음
4) 대입 연산자 '=' 에 의해 생성된 int 타입 배열의 주소가, (int 타입 배열) 참조변수 score에 저장된다
5) 참조변수 score를 통해 생성된 배열에 값을 저장하거나 읽어 올 수 있다
예시의 문장은 '길이가 5인 int 배열' 이며, 참조변수의 이름을 따서 '배열 score' 라고 부르면 된다