다음은 다차원 배열을 통해 5명의 성적을 관리하는 프로그램이다.
package kr.s06.array;
public class SecondArrayMain02 {
public static void main(String[] args) {
//2차원 배열의 선언 및 생성, 초기화
int[][] score = {
{99, 89, 91},
{98, 89, 95},
{97, 82, 94},
{96, 81, 93},
{95, 80, 92}
};
System.out.println("번호 국어 영어 수학 총점 평균");
System.out.println("====================");
//행의 길이: 5
for(int i=0;i<score.length;i++) {//i: 행의 번호(0~4)
int sum = 0;
//번호 출력
System.out.print(" " + (i+1) + " ");
//번호의 '호' 자리에 정렬 위한 양 옆 공백
//열의 길이: 3
for(int j=0;j<score[i].length;j++) {//j: 열의 번호(0~2}
//총점 구하기
sum += score[i][j];
//과목 점수 출력
System.out.print(score[i][j] + " ");
}//end of inner for
//총점 출력 및 평균을 구하고 출력
System.out.println(sum + " " + sum/score[i].length);
}//end of outer for
}
}
출력)
번호 국어 영어 수학 총점 평균
====================
1 99 89 91 279 93
2 98 89 95 282 94
3 97 82 94 273 91
4 96 81 93 270 90
5 95 80 92 267 89
//2차원 배열의 선언 및 생성, 초기화
int[][] score = {
{99, 89, 91},
{98, 89, 95},
{97, 82, 94},
{96, 81, 93},
{95, 80, 92}
};
항목 구분을 위한 안내 문구를 System.out.println("번호 국어 영어 수학 총점 평균"); 출력한다.
요소 출력을 위해 이중 for문을 만드는데, 이때 루프를 돌며 변화하는 각 행열의 값들을 sum 변수에 누적해 총합을 구하고 과목 점수도 출력한다.
그리고 행의 길이가 곧 학생 수에 해당하므로, 행의 index를 뜻하는 i를 활용해 번호 출력을 해준다. 이때, i는 0부터 시작하므로 (i+1)로 보정을 해준다.
평균의 경우 열의 길이가 곧 과목 수에 해당하므로, 총합을 score[i].length로 나누어 구한다.
tip: 닫는 중괄호가 여러 개라 헷갈린다면, 닫는 중괄호 끝에 주석을 달아 표시해두면 좋다.
ex. }//end of inner for