배열이 배열의 원소에 들어가는 구조로, 이차원 배열은 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();

}

}


}


+ Recent posts