728x90
목차
<다차원 배열>
수학에서 평면을 나타내기 위해 x, y좌표를 쓰는 것 처럼 프로그램에서도 평면을 구현하기 위해 행, 열을 이용한 이차원 배열을 사용할 수 있다.
바둑, 체스 네비게이션 지도 등을 구현할 때 이차원 배열을 활용.
공간을 나타내는 프로그램을 구현할 때는 삼차원 배열을 활용.
이렇게 이차원 이상으로 구현한 배열을 '다차원 배열'이라고 한다.
<이차원 배열>
2행 3열의 이차원 배열 선언 코드.
int [][] arr = new int [2] [3];
// 자료형 배열명 행 / 열 개수
배열의 모든 요소를 참조하기 위해 각 행을 기준으로 열 값을 순회한다.
이 배열을 초기화 하려면 행과 열 개수에 맞추어 중괄호 {}안에 콤마(,)로 구분해 값을 적으면 된다.
다음 코드처럼 괄호 안에 적은 6개 값이 순서대로 arr배열의 각 요소에 저장된다.
int[][] arr = {{1,2,3},{4,5,6}};
//이차원 배열 arr을 선언과 동시에 초기화
이차원 배열 초기화 하기
public class TwoDimension {
public static void main(String[] args) {
int[][] arr = {{1,2,3},{4,5,6}};
//이차원 배열 선언과 동시에 초기화
for(int i = 0; i < arr.length; i++) {
for(int j = 0; j < arr[i].length; j++) {
System.out.println(arr[i][j]);
}
System.out.println();//0행 출력 후 줄 띄우기
}
}
}
run:
중첩 for문은 배열 인덱스용으로 i, j 두 변수를 사용했다.
i는 행, j는 열을 가리킨다.
전체 배열 길이 arr.length는 행의 개수,
각 행의 길이 arr[i].length는 열의 개수 를 나타낸다.
이차원 배열의 길이 출력
public static void main(String[] args) {
int[][] arr = new int[2][3];
// 2행 3열(초기화 X)
for(int i = 0; i < arr.length; i++) {
for(int j = 0; j < arr[i].length; j++) {
System.out.println(arr[i][j]);
}
System.out.println();
}
System.out.println(arr.length);
// 행 개수
System.out.println(arr[0].length);
// 열 개수
}
}
run:
위 코드를 보면 이차원 배열을 선언만 하고 초기화를 따로 하지 않아서 모두 0으로 자동 초기화 된 것을 확인할 수 있다.
<이차원 배열 연습하기>
알파벳 소문자를 2글자씩 13줄(13행 2열)로 출력하는 프로그램을 이차원 배열로 구현해보자.
public static void main(String[] args) {
char[][] alphabet = new char[13][2];
char ch = 'a'; //ch에 아스키값 a 저장
for(int i = 0; i < alphabet.length; i++) {
for(int j = 0; j < alphabet[i].length; j++, ch++) {
alphabet[i][j] = ch;
// 배열 값에 아스키 값으로 저장 후 ch++ 하게 되는 구조.
System.out.print(alphabet[i][j]);
} //
System.out.print(" ");
}
}
}
run:
너무 위아래로 길어져서 각 행을 띄어쓰기로 대체함
[Do it! 자바 프로그래밍 입문] 도서로 공부하며 정리한 글입니다.
300x250