Cộng đồng Hỏi & Đáp của Inflearn
다차원 배열 순회 관련 질문입니다.
Viết
·
456
0
System.out.println("------------");
// 세로크기 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++) { //세로
for (int j = 0; j < seats3[i].length; j++) { //가로
seats3[i][j] = eng[i] + (j + 1);
}
}이 부분에서 혹시 i < seats3.Length; 단순히 A부터 J까지 10개라서 10이되는건가요?
그리고 j < seats3[i] 는 어떤 원리로 15가 되는건지 궁금합니다.
Quiz
배열의 주요 특징은 무엇일까요?
데이터를 순서 없이 저장합니다.
서로 다른 데이터 타입의 항목을 저장합니다.
동일한 데이터 타입의 항목을 연속적인 공간에 저장합니다.
크기가 동적으로 변합니다.
Câu trả lời 2
1
/*
예시 ) 이차원 배열을 선언과 동시에 초기화를 예제로 함.
이차원 배열의 크기 = seats3[10][15] => seats3[첫번째 요소 크기][두번째 요소 크기]
seats3.length; //세로 => 10인 이유는 배열의 선언당시 첫번째 요소의 크기를 10으로 값을 선언해서 그렇고
seats3[i].length; //가로 => 15인 이유는 배열의 선언당시 두번째 요소의 크기를 15로 값을 선언해서 그래용
for(int i=0; i<seats3.length; i++)
=> 정수형 i값은 0으로 지정하고 첫번째 요소의 크기만큼 반복 seats3[0~9]
for(int j=0; j<seats3[i].length; j++)
=> 정수형 j값은 0으로 지정하고 첫번째 요소의 해당하는 (두번째 요소)만큼 반복 seats3[0][0~14]
String[][] seats3 = new String[10][15];
seats3 = {{A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15}, // seats3[0]
{B1,B2,B3,B4,B5,B6,B7,B8,B9,B10,B11,B12,B13,B14,B15}, // seats3[1]
{C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15}, // seats3[2]
{D1,D2,D3,D4,D5,D6,D7,D8,D9,D10,D11,D12,D13,D14,D15}, // seats3[3]
{E1,E2,E3,E4,E5,E6,E7,E8,E9,E10,E11,E12,E13,E14,E15}, // seats3[4]
{F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15}, // seats3[5]
{G1,G2,G3,G4,G5,G6,G7,G8,G9,G10,G11,G12,G13,G14,G15}, // seats3[6]
{H1,H2,H3,H4,H5,H6,H7,H8,H9,H10,H11,H12,H13,H14,H15}, // seats3[7]
{I1,I2,I3,I4,I5,I6,I7,I8,I9,I10,I11,I12,I13,I14,I15}, // seats3[8]
{J1,J2,J3,J4,J5,J6,J7,J8,J9,J10,J11,J12,J13,J14,J15}} // seats3[9]
*/
0
안녕하세요?
먼저 답변이 늦어 죄송합니다.
첫 번째 질문에 대해 답변 드릴게요.
이 부분에서 혹시 i < seats3.Length; 단순히 A부터 J까지 10개라서 10이되는건가요?그렇습니다.
seats3 배열의 크기는 String[10][15]로 선언되어 있는데요. 쉽게 세로 크기 10 x 가로 크기 15 인 배열이라고 이해하시면 좋습니다. seats3.length 을 하게 되면 seats3 배열의 세로 크기를 의미하며 10 이 됩니다. 따라서 i는 0부터 9까지 변화하면서 반복문이 실행되지요.
두 번째 질문에 대한 답변입니다.
그리고 j < seats3[i] 는 어떤 원리로 15가 되는건지 궁금합니다.seats3.length 가 배열의 세로 크기였다면 seats3[i].length 는 seats3 배열의 i 위치의 가로 크기를 의미합니다. 먼저 seats3[i] 자체가 seat3 배열의 i 인덱스에 해당하는 요소가 되구요. 2차원 배열 seats3 의 각 요소는 1차원 배열(가로 방향)인데, String[10][15] 에 의해 가로 방향의 크기를 15로 설정했지요.
따라서 seats3[i].length 는 seat3 배열의 i 인덱스에 해당하는 1차원 배열의 크기인 15가 됩니다. 결국 j는 0부터 14까지 변화하면서 반복문이 실행됩니다 😊
감사합니다.





