5.1.9 2차원 배열의 출력

jh·2022년 1월 24일
0

Do it! 자바 완전 정복

목록 보기
42/70

2차원 배열은 가로, 세로 방향으로 데이터가 분포돼 있어 2개의 인덱스를 사용해야 한다. 따라서 2차원 배열의 모든 데이터를 출력하기 위해서는 기본적으로 이중 for 문을 사용해야 한다. 여기서 중요한 것은 반복 횟수를 지정하는 것이다. 앞서 살펴본 2차원 비정방 배열 예제에서는 2개의 행(0행, 1행)에 대해 각각 2회(a[0].legnth) 및 3회(a[1].length)를 반복해야 한다. 따라서 바깥쪽 for 문에는 행의 개수를 나타내는 a.length, 안쪽 for 문에는 행별 열의 개수를 나타내는 a[i].length를 사용해야 한다.

🦅이중 for 문을 이용한 2차원 배열 원소 출력

int[][]a = {{1, 2},{3, 4, 5}};

        for(int i = 0; i < a.length; i++ ){
            for(int j = 0; j<a[i].length; j++){
                System.out.println(a[i][j]);
            }
        }

앞서 1차원 배열에서 살펴본 집합 객체(배열, 컬렉션)의 원소를 1개씩 모두 꺼낼 때까지 반복하는 for-each문을 사용할 수도 있다. 여기서도 이중 for-each문을 사용해야 한다. 2차원 배열에 꺼낸 하나의 원소가 1차원 배열이기 때문이다. 이중 for-each문을 이용한 2차원 배열의 출력 예는 다음과 같다.

🦅이중 for-each 문을 이용한 2차원 배열 원소 출력

int[][] a = {{1, 2}, {3, 4, 5}};

        for(int[] m : a) {
            for(int n: m){
                System.out.println(n);
            }
        }

실습

        // 2차원 데이터의 배열의 길이
        int[][] array1 = new int[2][3];
        System.out.println(array1.length); // 행 개수
        System.out.println(array1[0].length); //첫 번째 행의 열 개수
        System.out.println(array1[1].length); //두 번째 행의 열 개수
        System.out.println();

        int[][] array2 = new int[][] {{1, 2},{3, 4, 5}};
        System.out.println(array2.length);
        System.out.println(array2[0].length);
        System.out.println(array2[1].length);
        System.out.println();

        // 2차원 배열의 출력 방법
        System.out.print(array2[0][0] + " ");
        System.out.print(array2[0][1] + " ");
        System.out.println();
        System.out.print(array2[1][0] + " ");
        System.out.print(array2[1][1] + " ");
        System.out.println(array2[1][2]);
        System.out.println();

        // 이중 for 문 사용
        for(int i = 0; i < array2.length; i++){
            for(int j = 0; j<array2[i].length; j++){
                System.out.print(array2[i][j] + " ");
            }
            System.out.println();
        }
        System.out.println();

        // 이중 for - each 문 사용
        for(int[] array : array2) {
            for(int k : array) {
                System.out.print(k + " ");
            }
        System.out.println();
        }

결과

profile
코딩 공부 중...

0개의 댓글