다음 Java 프로그램 결과를 쓰시오.
public class QfranTest{
public static void main(String []args){
int a[][] = {{45, 50, 75}, {89}};
System.out.println(a[0].length);
System.out.println(a[1].length);
System.out.println(a[0][0]);
System.out.println(a[0][1]);
System.out.println(a[1][0]);
}
}
1. 2차원 배열 a 선언 및 초기화
int a[][] = {{45, 50, 75}, {89}};
- 배열 a는 두 개의 1차원 배열을 포함하는 2차원 배열입니다.
- a[0]은 {45, 50, 75}라는 배열을 가집니다.
- a[1]은 {89}이라는 배열을 가집니다.
2. 각 출력문의 해석
- System.out.println(a[0].length);
- a[0]은 {45, 50, 75}이므로, 이 배열의 길이는 3입니다.
- 출력: 3
- System.out.println(a[1].length);
- a[1]은 {89}이므로, 이 배열의 길이는 1입니다.
- 출력: 1
- System.out.println(a[0][0]);
- a[0][0]은 첫 번째 배열의 첫 번째 요소인 45입니다.
- 출력: 45
- System.out.println(a[0][1]);
- **a[0][1]**은 첫 번째 배열의 두 번째 요소인 50입니다.
- 출력: 50
- System.out.println(a[1][0]);
- **a[1][0]**은 두 번째 배열의 첫 번째 요소인 89입니다.
- 출력: 89
1. 2차원 배열에서의 인덱싱
- 2차원 배열은 배열 안에 배열이 있는 구조입니다.
- 첫 번째 인덱스는 **행(row)**을 나타내고,
- 두 번째 인덱스는 그 행 내에서 **열(column)**을 나타냅니다.
배열 a의 구조:
java
코드 복사
int a[][] = {{45, 50, 75}, {89}};
이 배열의 시각적 구조는 다음과 같습니다:
css
코드 복사
a = [ [45, 50, 75], // a[0] [89] // a[1] ]
각각의 인덱스가 의미하는 것:
- **a[0]**은 첫 번째 배열인 [45, 50, 75]을 나타냅니다.
- a[0][0] = 45
- a[0][1] = 50
- a[0][2] = 75
- **a[1]**은 두 번째 배열인 [89]을 나타냅니다.
- a[1][0] = 89
왜 **a[0][1] = 50**인가?
- **a[0]**은 첫 번째 배열인 [45, 50, 75]입니다. 여기서:
- **a[0][0]**은 첫 번째 요소인 45,
- **a[0][1]**은 두 번째 요소인 50,
- **a[0][2]**은 세 번째 요소인 75입니다.
왜 **a[1][0] = 89**인가?
- **a[1]**은 두 번째 배열로, 이 배열에는 요소가 하나만 있습니다.
- **a[1][0]**은 첫 번째이자 유일한 요소인 **89**입니다.
결론:
- **a[0][1]**은 첫 번째 배열(a[0])의 두 번째 요소이므로 값은 50입니다.
- **a[1][0]**은 두 번째 배열(a[1])의 첫 번째 요소이므로 값은 89입니다.
2차원 배열에서 인덱스는 행(row)와 열(column)을 차례로 지정하여, 해당 요소를 선택하는 구조를 따릅니다.