JAVA

[Java_05] multi_array

korany 2023. 3. 8. 14:41

2차원 배열의 모든 값을 출력할 땐 2중 for문이 필요!

 

중요!

test.length     -> 큰 방의 개수

test[i].length -> 각 큰방에 포함되어 있는 작은 방의 개수

// 다차원 배열
		// 1차원 배열이 2개 모이면 2차원 배열
		// 1차원 배열이 3개 모이면 3차원 배열
		int[][] test = new int[2][3]; // 큰방 2개 작은 방 3개
		
		test[0][0] = 10;
		test[0][1] = 20;
		test[0][2] = 30;
		
		test[1][0] = 40;
		test[1][1] = 50;
		test[1][2] = 60;
		
		System.out.println(test[0][1]); //20
		
		System.out.println(test[1][1]); //50
		
		
		System.out.println("------------------------------------");
		// 2차원 배열의 모든 값을 출력할 땐 2중 for문이 필요!
		
		//test.length -> 큰 방의 갯수
		for(int i = 0; i<test.length; i++) {
			
			//	중요!!! test[i].length -> 각 큰방에 포함되어 있는 작은 방의 갯수
			for(int j = 0; j<test[i].length; j++) {
			
				System.out.printf("%d ", test[i][j]);
				
			}//inner
			
			System.out.println();
			
		}//outer


// 2차원 배열의 서언 밑 생성, 초기화를 한번에 하기
		char[][] chArr = {  { 'J', 'A', 'V', 'A' } , 
							{ 'S', 'P', 'R', 'I', 'N', 'G' }  };
		
		//chArr이 가진  모든 값을 출력
		
		for(int i=0; i<chArr.length; i++) {
			for(int j=0; j<chArr[i].length; j++) {
				
				System.out.print(chArr[i][j]);
			}
			System.out.println();
		}


작은 방의 개수 지정

int[][] num = new int[2][]; // 큰방은 2개인데 작은 방의 개수는 못정했어
		num[0] = new int[3]; // 큰 0번 방은 작은 방 3개
		num[1] = new int[2]; // 큰 1번 방은 작은 방 2개

		num[0][0] = 10;
		num[0][1] = 20;
		num[0][2] = 30;

		num[1][0] = 40;
		num[1][1] = 50;

		// num 배열의 모든 값 출력
		for (int i = 0; i < num.length; i++) {
			
			for (int j = 0; j < num[i].length; j++) {
				
				System.out.print(num[i][j] + " ");
			}
			System.out.println();
		}


2차원 배열 arr에 담긴 모든 값의 합과 평균을 출력

		int[][] arr = { {0, 3, 1, 5},
						{6, 2, 1},
						{1, 2, 3, 4},
						{2, 0, 1, 1, 0, 4}	};
		
		int sum =0;
		float avg = 0;
		int count = 0;
		
		for(int i = 0; i<arr.length; i++) {
			for(int j = 0; j<arr[i].length; j++) {
				sum += arr[i][j];
				count++;
				
			}
		}
		
		System.out.println(sum);
		avg = sum/(float)count;
		System.out.printf("%.1f", avg);
		
		// 총 합 : 36
		// 평 균 : 2.1 ( 평균은 소수점 한자리 까지 출력)