[java1]#05 - 배열, 2차원 배열, 2중 for문
1. 배열
-같은 자료형의 여러 변수를 나열해 놓은 것
(1) 여러 같은 의미의 값들을 하나의 이름과 인덱스로 관리하기 위해서
(2) 규칙성이 없는 값에 규칙성을 부여하기 위해서
ex) String[] msg = {"Java", "정다솔", "꽃", "이순신", "국어"};
2. 배열의 선언
(1) 자료형[] 배열명 = {값1, 값2, ...};
(2) 자료형[] 배열명 = new 자료형[칸수];
(3) 자료형[] 배열명 = null; //주소값의 초기값
3. 배열의 인덱스(index)번호
-실제 값들이 저장되어 있는 공간이 할당되면 이름은 존재하지 않고
주소값들만 존재한다. 따라서 시작 주소값을 배열명 변수가 갖고있고
주소연산을 통해 다음 주소값으로 이동한다. 시작주소에서 이동한 횟수(연산된 정수)가
인덱스 번호가 되고 첫번째 방은 배열명이 갖고 있는 주소에서 0번 이동해야 하므로
인덱스 번호는 0번부터 시작한다.
4. 배열의 사용
data = 10;
syso(data);
배열명[idx] = 값;
syso(배열명[idx]);
5.배열의 요소개수(길이)
배열명.length
6. 2차원 배열
: 배열 안의 배열
정방 배열 | 각 행마다 열의 개수가 동일한 배열 |
비정방 배열 | 각 행마다 열의 개수가 동일하지 않은 배열 |
-2차원 배열 선언
(1) 자료형[ ] [ ] 배열명 = {
{값1,값2,..},
{값3, 값4,..},
...
};
(2) 자료형[ ] [ ] 배열명 = new 자료형[행수][열수];
int [ ] [ ] arrData = {
{10,20,30},
{40,50,60}
};
7. 2중 for문 (nested for문)
for문 안에 for문이 있는 상태
바깥쪽에 있는 i for문은 다음 반복으로 넘어가기 위해
안쪽에 있는 수행 할 문장들을 모두 마쳐야 한다.
안에 수행할 문장중에 j for문이 있으므로, 그 j for문이
모두 완료되어야 i for문 입장에서는 모든 수행할 문장을
마친것이 된다. 따라서 가장 안쪽에 있는 문장은
(i for문의 반복횟수)*(j for문의 반복횟수) 만큼 수행한다.
i | j |
0 | 0 1 2 |
1 | 0 1 2 |