반응형
2차원 배열
String[][] 배열이름 = { {a,b,c}, {A,B,C} };
String 뒤에 [ ] 대괄호를 2쌍 입력하면 2차원 배열로 선언할 수 있다.
배열의 위치는 세로x가로 index 값을 기준으로 지정할 수 있다.(index는 0부터 시작)
ex) seats[0][1] 은 "A2" // 첫번째열 두번째행
A1~C5 세로 3열 * 가로 5행 2차원배열
for (int i = 0; i < 3; i++) { //세로(열) 기준
for (int j = 0; j < 5; j++) { //가로(행) 기준
System.out.print(seats[i][j] + " ");
}
System.out.println();
}
위와 같이 반복문을 중첩하여 세로(열) * 가로(행)을 순회할 수 있다.
다차원 배열의 행 개수가 각각 다른 경우 반복문을 수행할 횟수를 정수로 지정하는데 어려움이 있다.
이때 .length를 활용한다.
2차원 배열의 이름이 seats라고 가정할때,
seats.length 은 seats 배열의 세로 (열) 개수를 의미하며,
seats[i].length 은 seats배열의 i 열에 있는 가로 행 개수를 의미한다.
이를 이용해 아래와 같이 반복문을 실행할 수 있다.
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();
}
영화관 좌석 예시( A1 A2 A3 A4 A5 B1 B2 B3 B4 B5 )를 볼때
알파벳 (A, B, C ... ) 과 숫자 (1~5)의 조합으로 반복되고 있음을 볼 수 있다.
이를 활용하여 2차원 배열을 반복문을 통해 생성해보자.
String[][] seats3 = new String[10][15]; // 10열 * 15행의 2차원 배열 선언
String[] eng = {"A","B","C","D","E","F","G","H","I","J"}; //2차원 배열에 들어갈 알파벳을 배열로 선언
for (int i = 0; i < seats3.length; i++) { //세로(10번반복)
for (int j = 0; j < seats3[i].length; j++) { //가로(15번 반복)
seats3[i][j] = eng[i]+(j+1); //seats3[i][j]의 값을 알파벳(eng[i])과 숫자(j+1)의 조합으로 초기화
}
}
2차원 배열을 출력하면 아래와 같이 출력된다.
반응형
'Spec UP - Backend > 나도코딩의 자바기본편' 카테고리의 다른 글
Chap_05. 배열을 활용한 사이즈 출력 Quiz (0) | 2023.04.14 |
---|---|
Chap_05. 아스키 코드(ASCII) (0) | 2023.04.14 |
Chap_05. 배열 / 배열순회 (0) | 2023.04.12 |
Chap_04. 주차정산 Quiz (0) | 2023.04.12 |
Chap_04. 조건문 - break (0) | 2023.04.12 |
댓글