반응형
이번 강의에서는 2차원 배열을 값 목록으로 초기화하고,
각 반별 평균과 전체 평균을 계산하는 프로그램을 작성해봅니다.
2차원 배열은 행과 열 구조로 구성되며,
각 배열의 길이는 .length 속성으로 확인할 수 있습니다.
📌 예제 코드
public class MulltidimensionalArrayByValueListExample {
public static void main(String[] args) {
int scores[][] = {
{ 80, 90, 96 },
{ 76, 88 },
{ 80, 90, 55 },
{ 50, 60, 70, 80 }
};
System.out.println("1차원 배열 길이(전체 반의 수) : " + scores.length);
for (int i = 0; i < scores.length; i++) {
System.out.println("2차원 배열 길이( " + (i + 1) + "번째 반의 학생 수) : " + scores[i].length);
for (int j = 0; j < scores[i].length; j++)
System.out.println("scores[" + (i + 1) + "][" + (j + 1) + "] : " + scores[i][j]);
}
int sum = 0, allSum = 0, pCount = 0;
for (int i = 0; i < scores.length; i++) {
for (int j = 0; j < scores[i].length; j++, pCount++)
sum += scores[i][j];
System.out.println((i + 1) + "반의 평균 점수 : " + (double) sum / scores[i].length);
allSum += sum;
sum = 0;
}
System.out.println("전체 학생의 평균 : " + (double) allSum / pCount);
}
}
💬 코드 설명
- int[][] scores = { ... };
→ 2차원 배열 선언과 값 목록으로 초기화
→ 각 반마다 학생 수가 다름 → 가변 배열 - scores.length
→ 반의 개수 (1차원 배열 길이) - scores[i].length
→ 해당 반의 학생 수 (2차원 배열의 각 행 길이) - sum += scores[i][j]
→ 한 반의 점수 합계 계산 - (double) sum / scores[i].length
→ 각 반의 평균 계산 - allSum, pCount
→ 전체 점수 합과 전체 학생 수를 누적 → 마지막에 전체 평균 계산
💻 실행 결과 (예시)
1차원 배열 길이(전체 반의 수) : 4
2차원 배열 길이( 1번째 반의 학생 수) : 3
scores[1][1] : 80
scores[1][2] : 90
scores[1][3] : 96
2차원 배열 길이( 2번째 반의 학생 수) : 2
scores[2][1] : 76
scores[2][2] : 88
...
1반의 평균 점수 : 88.66666666666667
2반의 평균 점수 : 82.0
3반의 평균 점수 : 75.0
4반의 평균 점수 : 65.0
전체 학생의 평균 : 77.875
📌 간단 정리
표현식 | 설명 |
int[][] arr = { ... } | 2차원 배열 선언 및 초기화 |
arr.length | 1차원 길이 (반의 수) |
arr[i].length | 2차원 길이 (학생 수) |
arr[i][j] | 개별 점수 접근 |
💡 포인트 정리
- 2차원 배열은 [행][열] 구조, 각 행의 길이는 서로 다를 수 있음
- 배열.length는 1차원 배열(반 수)
배열[i].length는 각 행의 길이(학생 수) - 반복문 중첩 시 반복 기준을 .length로 설정하면 유지보수에 유리
- 전체 평균 = 총합 ÷ 총 학생 수 → 따로 누적 변수 필요
'프로그래밍 > JAVA' 카테고리의 다른 글
37. main() 메서드의 매개변수 - String[] args (1) | 2025.04.24 |
---|---|
36. 문자열 배열의 참조와 값 비교 (0) | 2025.04.24 |
35. 2차원 배열 생성 - 고정형과 가변형 비교 (2) | 2025.04.23 |
33. 배열 길이 활용하기 - length 속성 (0) | 2025.04.23 |
32. new 키워드로 배열 생성하기 (0) | 2025.04.23 |
31. 배열 재생성 - new int[] { ... } (0) | 2025.04.22 |