10일차 2차원 배열

박현정·2022년 3월 27일
0

JAVA 독학

목록 보기
13/26

2차원 배열

2차원 배열은 배열안에 배열이 있는 것
그러므로 2번 접근해야 값을 불러올 수 있다.

2차원 대괄호는 2개; 3차원 3개 ...등등

#선언

자료형 [][] 배열명 = new 자료형 [행][열];
자료형 [][] 배열명 = {
{값1, 값2, ..},
{값3, 값4,...}
};

#이중 for문

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);

}
			
}

**다시 해보기**

profile
Gut Beginer

0개의 댓글