개념
쉽게 말해서 행과 열이 있는 표 형식의 배열 데이터이다.

2차원 배열 선언하는 법
int[][] arr = new int[2][3]
데이터 타입 + [][] + 변수명 = new 데이터 타입 + [행][열]
행 = row
열 =column
*변수명에는 참조값이 생성 된다.
사용 예제
package array;
public class arrayDIO {
public static void main(String[] args) {
int[][] arr = new int[2][3];
arr[0][0] = 1;
arr[0][1] = 2;
arr[0][2] = 3;
arr[1][0] = 4;
arr[1][1] = 5;
arr[1][2] = 6;
System.out.print(arr[0][0]);
System.out.print(arr[0][1]);
System.out.print(arr[0][2]);
System.out.println();
System.out.print(arr[1][0]);
System.out.print(arr[1][1]);
System.out.print(arr[1][2]);
}
}

리팩토링1(row)
public class arrayDIO2 {
public static void main(String[] args) {
int[][] arr = new int[2][3];
arr[0][0] = 1;
arr[0][1] = 2;
arr[0][2] = 3;
arr[1][0] = 4;
arr[1][1] = 5;
arr[1][2] = 6;
for (int row = 0; row<2; row++) {
System.out.print(arr[row][0]);
System.out.print(arr[row][1]);
System.out.print(arr[row][2]);
System.out.println();
}
}
}

리팩토링(column)

처음으로 이중for문이라는 걸 사용했다.
경우의 수 라고 생각하면 쉽다.
첫번째 for문의 경우의 수는 2
두번째 for문의 경우의 수는 3
0-0,0-1,0-2 //두번째 for문 탈출
1-0,1-1,1-2 //두번째 for문 탈출
첫번째 for문 탈출!
초기화
지금은 행 갯수 열 갯수 선언
변수 마다 값 지정

이 걸 한번에 처리할 수 있다.

배열의 길이
지금은 for문에서 행과 열의 길이를 정수로 지정을 한다.
만약 행과 열의 값이 더 많아지면 for문안의 행과 열의 길이도
변경을 해줘야하는 일이 생긴다.
이런일이 발생하지않게 코드를 작성할 수 있다.

arr.length는 {}의 갯수를 센다.
arr[row].length는 arr의 행 안의 갯수를 센다.
정해진 행과 열에 일정 수만큼 증가하는 2차원 배열 만들기
package array;
public class arrayDIO5 {
public static void main(String[] args) {
int[][] arr = new int[5][3];
int i = 1;
for (int row = 0; row < arr.length; row++) {
for (int column = 0; column < arr[row].length; column++) {
arr[row][column] = i++;
}
}
for (int row = 0; row<arr.length; row++) {
for (int column = 0; column<arr[row].length; column++) {
System.out.print(arr[row][column]);
}
System.out.println();
}
}
}
각 행과열에
int i 에 지정한 숫자만큼 값이 증가하는 코드이다.
