1. 2차원 배열 순회 (모든 행의 길이가 같은 2 차원 배열)
String[][] seats = new String[][]{
{"A1", "A2", "A3", "A4", "A5"},
{"B1", "B2", "B3", "B4", "B5"},
{"C1", "C2", "C3", "C4", "C5"}
};
for (int i = 0; i < 3; i++) { // 세로
for (int j = 0; j < 5; j++) { // 가로
System.out.print(seats[i][j] + " ");
}
System.out.println();
}
// 하드코딩 피하고 싶으면 3과 5를 각각 seats.length, seats[i].length로 바꾸면 된다.
2. 2차원 배열 순회 (행 마다 길이가 다른 2차원 배열)
String[][] seats2 = {
{"A1", "A2", "A3"},
{"B1", "B2", "B3", "B4"},
{"C1", "C2", "C3", "C4", "C5"}
};
//seats2[2] -> 2차원 배열 안의 3번째 행인 1차원 배열을 가리킴.
//seat2.length -> 2차원 배열 안에 1차원 배열의 갯수
for (int i = 0; i < seats2.length; i++) { // 세로
for (int j = 0; j < seats2[i].length; j++) { // 가로
System.out.print(seats2[i][j] + " ");
}
System.out.println();
}
3. 배열 자동 초기화 (값이 엄청 많을 때 유용)
// 배열 자동 초기화
// 세로크기 10 x 가로 크기 15에 해당하는 영화관 검색
String[][] seats3 = new String[10][15];
String[] eng = {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J"};
for (int i = 0; i < seats3.length; i++) {
// seats3[i].length == 해당 행의 가로 길이
for (int j = 0; j < seats3[i].length; j++) {
// 각 자리에 값 초기화 (j + 1은 괄호 쳐줘야 int 계산임을 인식, 괄호 없으면 String 계산인 줄 안다.)
// j는 0부터 시작이니까 +1
seats3[i][j] = eng[i] + (j + 1);
}
}
// 표 구매
seats3[7][8] = "__"; //H9
seats3[7][9] = "__ "; //H10
//영화관 좌석 번호 확인
for (int i = 0; i < seats3.length; i++) { // 세로
for (int j = 0; j < seats3[i].length; j++) { // 가로
System.out.print(seats3[i][j] + " ");
}
System.out.println();
}