본문 바로가기
language/Java

2차원 배열(Array)

by abstract.jiin 2022. 6. 21.

2차원 배열은 1차원 배열에서 대괄호 하나를 더 추가한다. 

주로 테이블(표)형태의 데이터를 담을 때 사용한다. 


[   ] 1차원      >for
[행][열] 2차원  >이중 for

 

 

선언 및 생성 

int[ ][ ] score = new int[2][4]; 

 

초기화 

int[ ][ ] score= {{70, 80, 90}, {80, 90, 100}};

new int 를 생략하고 배열 선언, 생성 및 초기화

public class ArrEx14 {

	public static void main(String[] args) {

		int[][] score = { { 100, 100, 100 }, 
						  { 20, 20, 20 }, 
						  { 30, 30, 30 },
					      { 40, 40, 40 },
						  { 50, 50, 50 }
          				 }; 
					
		// 과목별 총점
		int korTotal = 0;
		int engTotal = 0;
		int mathTotal = 0;

		System.out.println("번호    국어    영어    수학    총점      평균");
		System.out.println("===============================");

		for (int i = 0; i < score.length; i++) {
			int sum = 0;
			double avg = 0.0;

			korTotal += score[i][0];
			engTotal += score[i][1];
			mathTotal += score[i][2];
			System.out.printf("%3d", i + 1);// %3d는 세자리 십진수 출력형태,
			// 오른쪽 정렬이 기본이고 빈자리는 공백으로 표시

			for (int j = 0; j < score[i].length; j++) {
				sum += score[i][j];
				System.out.printf("%5d", score[i][j]);
			}
			
			avg=sum/(double)score[i].length;//int/double->double/double이 된다. 
			// 결국 평균은 몫과 나머지를 함께 구함. 
			
			System.out.printf("%5d %5.1f %n", sum, avg);
			//%f는 십진수 실수 출력형태, 
			//전체 자리수는 5자리이고 소수점 첫째 자리까지 표현 =>%5.1f 
		}//outer for
		
		System.out.println("===============================");
		System.out.printf("총점: %3d %4d %4d\n", korTotal, engTotal, mathTotal);
	}

}

실행 결과 

더보기

번호    국어    영어    수학    총점      평균
===============================
  1  100  100  100  300 100.0 
  2   20   20   20   60  20.0 
  3   30   30   30   90  30.0 
  4   40   40   40  120  40.0 
  5   50   50   50  150  50.0 
===============================
총점: 240  240  240

 

출력

System.out.println(Arrays.toString(strs)); //1차원 배열
System.out.println(Arrays.deepToString(strs)); //2차원 배열부터 ...

 

 

'language > Java' 카테고리의 다른 글

ArrayList_List Collection  (0) 2022.06.23
[응용 예제] Bingo  (0) 2022.06.21
배열(Array)  (0) 2022.05.30
do ~ while  (0) 2022.05.29
반복문 (while)  (0) 2022.05.29