반응형
이번 글에서는 new 키워드를 사용하여 2차원 배열을 생성하는 방법을 익히고,
고정형 2차원 배열과 가변형 2차원 배열의 차이를 비교합니다.
또한 수학과 영어 점수를 배열로 관리하며, 전체 평균을 계산해보는 예제를 작성합니다.
📌 예제 코드
public class MultidimensionalArrayByNewExample {
public static void main(String[] args) {
int[][] math = new int[2][3];
for (int i = 0; i < math.length; i++)
for (int j = 0; j < math[i].length; j++)
System.out.println("math[" + i + "][" + j + "] : " + math[i][j]);
math[0][0] = 80; math[0][1] = 83; math[0][2] = 85;
math[1][0] = 86; math[1][1] = 90; math[1][2] = 92;
int stu = 0, sum = 0;
for (int i = 0; i < math.length; i++) {
stu += math[i].length;
for (int j = 0; j < math[i].length; j++)
sum += math[i][j];
}
System.out.println("전체 학생의 수학 평균 점수 : " + (double) sum / stu + "\n");
int[][] eng = new int[2][];
eng[0] = new int[2];
eng[1] = new int[3];
for (int i = 0; i < eng.length; i++)
for (int j = 0; j < eng[i].length; j++)
System.out.println("eng[" + i + "][" + j + "] : " + eng[i][j]);
eng[0][0] = 90; eng[0][1] = 91;
eng[1][0] = 92; eng[1][1] = 93; eng[1][2] = 94;
stu = sum = 0;
for (int i = 0; i < eng.length; i++) {
stu += eng[i].length;
for (int j = 0; j < eng[i].length; j++)
sum += eng[i][j];
}
System.out.println("전체 학생의 영어 평균 점수 : " + (double) sum / stu + "\n");
}
}
💬 코드 설명
🟢 수학(math) 배열 – 고정형
- int[][] math = new int[2][3];
→ 2행 3열의 고정형 2차원 배열 생성 - 모든 요소는 초기값 0으로 채워짐
- 각 인덱스에 점수를 수동 입력한 후 평균 계산
🔵 영어(eng) 배열 – 가변형
- int[][] eng = new int[2][];
→ 2행만 생성한 뒤, 각 행에 다른 열 길이를 개별 설정- eng[0] = new int[2]; → 2열
- eng[1] = new int[3]; → 3열
- 가변 구조이므로 행마다 학생 수가 달라도 가능
💻 실행 결과 (요약)
math[0][0] : 0
math[0][1] : 0
math[0][2] : 0
...
전체 학생의 수학 평균 점수 : 84.33333333333333
eng[0][0] : 0
eng[0][1] : 0
...
전체 학생의 영어 평균 점수 : 92.0
📌 간단 정리
타입 | 설명 | 예시 |
고정형 배열 | 행과 열이 모두 고정됨 | new int[2][3] |
가변형 배열 | 행 개수는 고정, 각 행의 열은 나중에 지정 | new int[2][] → arr[0] = new int[2] |
💡 포인트 정리
- new int[행][열] → 고정형 2차원 배열
- new int[행][] → 가변형 2차원 배열
- 배열의 길이는 .length로 확인 (각 행도 .length 사용 가능)
- 평균 계산 시 학생 수(stu) 누적 후 (double) sum / stu로 계산
- 초기값은 기본형: 0, 참조형: null
'프로그래밍 > JAVA' 카테고리의 다른 글
38. 클래스와 객체 생성 - 필드 기본값 확인 (0) | 2025.04.25 |
---|---|
37. main() 메서드의 매개변수 - String[] args (1) | 2025.04.24 |
36. 문자열 배열의 참조와 값 비교 (0) | 2025.04.24 |
34. 2차원 배열과 평균 계산 (0) | 2025.04.23 |
33. 배열 길이 활용하기 - length 속성 (0) | 2025.04.23 |
32. new 키워드로 배열 생성하기 (0) | 2025.04.23 |