2차원 배열은 배열안에 배열이 있는 것
그러므로 2번 접근해야 값을 불러올 수 있다.
2차원 대괄호는 2개; 3차원 3개 ...등등
자료형 [][] 배열명 = new 자료형 [행][열];
자료형 [][] 배열명 = {
{값1, 값2, ..},
{값3, 값4,...}
};
2차원 배열의 예제를 다루기 전에 이중 for문 예제부터 다뤄보자.
첫번째 for문에서 9번
안의 for문에서 9번 반복하는 것을 확인할 수 있다.
(실생활예제) 구구단 만들기
for(int i =1; i<10; i++) {
for(int j = 1; j<10; j++) {
System.out.printf("%d*%d=%d\n",i,j,i*j);
}
System.out.println();
}
}
}
(결과창)
(실생활예제) 나이키 지점별/연령별 총 매출액과 평균액과 총 합계 매출액과 평균액을 구하라.
//강남점, 홍대점, 명동점
//성인, 키즈
int [][] arrIncome = new int [2][3];
// 성인/키즈별 각 지점별 매출액 저장공간
int [] arASum = new int[2];
int [] arBSum = new int[3];
//Asum 연령별 총합매출액
//Bsum 지점별 총합매출액
int sum = 0;
double [] aAvg = new double [2];
double [] bAvg = new double [3];
double avg = 0.0;
//aAvg연령별 총 평균액 bAvg 지점별 총 평균액
int rLength = arrIncome.length;
int cLength = arrIncome[0].length;
//^배열안의 배열 rlength = 2 clength =3
String result = "----------------------------------\n";
String [][] arrName = {
{"강남점A", "홍대점A","명동점A"},
{"강남점K", "홍대점K","명동점K"}
};
String [] arAName = {"성인","키즈"};
String [] arBName = {"강남점", "홍대점","명동점"};
String inputMsg = "매출액을 입력하세요";
for(int i=0;i<arrIncome.length;i++) {
//이후 연령별로 다시입력 해주라고 나옴
for(int j=0;j<arrIncome[0].length;j++) {
//먼저 지점별로 매출액 입력 반복
arrIncome[i][j] = Integer.parseInt(JOptionPane.showInputDialog(arrName[i][j]+""+inputMsg));
//**연령별/지점별 매출 총합 누적하는 저장공간
arASum[i] += arrIncome[i][j];
arBSum[i] += arrIncome[i][j];
sum += arrIncome[i][j];
}
}
//반복이 끝난후 평균액 계산
for (int i=0;i<aAvg.length;i++) {
//먼저 연령별 평균은 지점별로 나누어줘야 평균 즉 3! arBsum.length -> 아까 지점별 총합계 길이
aAvg[i] = Double.parseDouble(String.format("%.2f",(double) arASum[i]/arBSum.length));
}
for (int i=0;i<bAvg.length;i++) {
// 이후 지점별 평균은 연령별로 나누어줌 2
bAvg[i] = Double.parseDouble(String.format("%.2f",(double) arBSum[i]/arASum.length));
}
//총평균
avg = Double.parseDouble(String.format("%.2f", sum/(double)(rLength*cLength)));
for(int i =0; i<rLength; i++) {
for(int j =0; j<cLength;j++) {
result += arrName[i][j] + "매출액 : "+arrIncome[i][j] + "만원\n";
}
//연령별매출액
result += arAName[i] + "매출액: " + arASum[i] + "만원\n";
result += arAName[i] + "평균 매출액: " + aAvg[i] + "만원\n";
result += "----------------------------------\n";
}
for(int i=0; i < arBSum.length; i++) {
result += arBName[i] + "총 매출액 : " + arBSum[i]+"만원\n";
result += arBName[i] + "평균 매출액 : " + bAvg[i]+"만원\n";
}
result += "----------------------------------\n";
result += "총 매출액 : " + sum +"만원\n";
result += "평균 매출액 : " + avg +"만원\n";
result += "----------------------------------\n";
JOptionPane.showMessageDialog(null, result);
}
}
**다시 해보기**