13. 다차원 배열 - 2차원 배열 (2차원배열에 랜덤정수 넣고 출력) [ Tutorial 13]
배열이 배열의 원소에 들어가는 구조로, 이차원 배열은 M X N 구조를 가진다.
a[0][0] a[0][1] ...
a[1][0] a[1][1] ...
로 앞[]에 배열이 행, 뒤에 배열[]이 열을 의미한다.
그냥 단순배열 a[]에서는 열을 의미한다고 생각한다.
[1] 50 X 50의 이차원배열에 0~9사이의 랜덤 정수를 생성해서 전체 데이터를 분석해보자
1. 배열크기를 의미하는 상수하나를 선언한다.
int N = 50;
2. int형 2차원 배열을 선언하고, 1에서 만든 상수를 배열의 크기에 집어넣는다.
int[][] array= new int[N][N];
3. 2차원 배열을 처리할 때는, 이중 for문 (중첩 for문)을 사용한다. ( 행 > 열 순서로 for문 순서를 지정한다.)
index 0번째 행에서--> 0~49까지 각 열이 채워준다. 그걸 50번 반복
4. 이제 0부터 9까지 사이의 랜덤한 수를 배열에 집어넣는다 ( 랜덤 수 0<= x<1 에 10을 곱해서 0<=x<10 을 정수형으로)
for(int i = 0; i<N ; i++) {
for(int j = 0; j<N ;j++) {
array[i][j] = (int)(Math.random() * 10 );
}
}
5. 이제 집어넣은 50 X 50 2차원 배열을 출력할 때도 이중 FOR문을 써야한다.
(1) 열에 있어서는, print 로 배열[i][j] + " "; 로 빈칸을 두도록 출력하고
(2) 행에 있어서는, println으로 한줄씩 내려가도록 만든다.
** 이차원 배열은 2d게임의 좌표설명 / 미로찾기 등을 개발할 때 많이 사용된다.
public class Main {
public static void main(String[] args) {
int N = 50;
int[][] array= new int[N][N];
for(int i = 0; i<N ; i++) {
for(int j = 0; j<N ;j++) {
array[i][j] = (int)(Math.random() * 10 );
}
}
for(int i = 0; i < N; i++) {
for(int j = 0; j < N ; j++) {
System.out.print(array[i][j] + " ");
}
System.out.println();
}
}
}