본문 바로가기
프로그래밍/JAVA

초보 자바 프로그래밍(17) - 배열과 for 문 활용

by 머니테크리더 2023. 5. 2.
반응형

배열과 for 문 활용 대표 이미지
배열과 for 문 활용 대표 이미지

🔖 INDEX

     

     

    for 문을 사용한 배열 데이터 접근

    for 문은 배열을 순회하고 요소에 접근하는 데 필수적인 도구입니다. for 문을 사용하면 지정된 횟수만큼 코드 블록을 반복 실행할 수 있어 배열 작업에 특히 유용합니다. 이 섹션에서는 for 문을 사용하여 배열 요소에 접근하는 방법에 대해 설명합니다.

     

    1. 1차원 배열에서의 for 문 사용

    1차원 배열에서는 간단한 for 문을 사용하여 배열 요소를 순회할 수 있습니다. 루프 카운터 변수를 사용하여 현재 인덱스를 추적하고 이 인덱스를 사용하여 배열 요소에 접근할 수 있습니다.

    int[] myArray = {1, 2, 3, 4, 5};
    for (int i = 0; i < myArray.length; i++) {
        System.out.println(myArray[i]);
    }

    배열의 인덱스는 0부터 시작하며, 배열의 길이보다 작아야 합니다. 인덱스를 사용하여 배열 요소에 접근할 때, 인덱스 범위를 벗어나지 않도록 주의해야 합니다.

     

     

    2. 다차원 배열에서의 for 문 사용

    다차원 배열에서는 중첩된 for 문을 사용하여 요소를 순회할 수 있습니다. 바깥쪽 루프는 행(첫 번째 차원)을 순회하고 내부 루프는 열(두 번째 차원)을 순회합니다. 두 차원 이상인 경우 중첩 루프를 추가로 사용할 수 있습니다.

    int[][] my2DArray = {
        {1, 2, 3},
        {4, 5, 6},
        {7, 8, 9}
    };
    
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 3; j++) {
            System.out.print(my2DArray[i][j] + " ");
        }
        System.out.println();
    }

    다차원 배열의 경우, 아래 예제의 비정형 배열과 같이 각 행의 길이가 다를 수 있습니다. 이 경우, 내부 for 문의 조건식에서 바깥쪽 루프의 인덱스를 사용하여 행의 길이에 맞게 반복 횟수를 조절해야 합니다.

    int[][] my2DArray = {
        {1, 2, 3},
        {4, 5},
        {6, 7, 8, 9}
    };
    
    for (int i = 0; i < my2DArray.length; i++) {
        for (int j = 0; j < my2DArray[i].length; j++) {
            System.out.print(my2DArray[i][j] + " ");
        }
        System.out.println();
    }

     

    for-each 문을 사용한 배열 데이터 접근

    for-each 문은 자바에서 제공하는 간편한 배열 순회 방법입니다. 이 방식은 배열의 각 요소를 차례대로 접근할 때 인덱스를 사용하지 않고, 각 요소를 직접 사용할 수 있습니다. for-each 문은 배열뿐만 아니라 컬렉션 프레임워크에서도 사용할 수 있습니다.

     

    1. 1차원 배열에서의 for-each 문 사용

    1차원 배열에서 for-each 문을 사용하는 방법은 아래와 같습니다.

    int[] myArray = {1, 2, 3, 4, 5};
    for (int element : myArray) {
        System.out.println(element);
    }

    이 예제에서 element 변수는 배열 myArray의 각 요소에 순서대로 할당됩니다. 인덱스를 사용하지 않고 각 요소를 직접 사용할 수 있습니다.

     

     

    2. 다차원 배열에서의 for-each 문 사용

    다차원 배열에서도 for-each 문을 사용할 수 있습니다. 이 경우, 중첩된 for-each 문을 사용하여 각 차원의 요소에 접근할 수 있습니다.

    int[][] my2DArray = {
        {1, 2, 3},
        {4, 5},
        {6, 7, 8, 9}
    };
    
    for (int[] row : my2DArray) {
        for (int element : row) {
            System.out.print(element + " ");
        }
        System.out.println();
    }

    이 예제에서 바깥쪽 for-each 문은 my2DArray의 각 행을 순회하고, 내부 for-each 문은 각 행의 요소를 순회합니다. 이 방식으로 다차원 배열의 모든 요소에 접근할 수 있습니다.

     

    for-each 문을 사용하면 배열 요소를 간편하게 순회할 수 있으며, 인덱스를 사용하지 않아 인덱스 관련 오류를 방지할 수 있습니다. 하지만 for-each 문은 요소를 수정하거나, 인덱스 정보가 필요한 경우에는 사용하기 어렵습니다.

     

    for-each 문 사용 시 주의 사항

    for-each 문을 사용할 때 주의해야 할 사항들은 다음과 같습니다.

     

    1. 배열 요소 수정 : for-each 문에서 배열 요소를 수정하려고 시도하면, 실제 배열에는 영향을 미치지 않습니다. for-each 문에서는 배열 요소의 복사본이 사용되기 때문입니다. 배열의 요소를 수정하려면 기본 for 문을 사용하거나, 다른 방법을 사용해야 합니다.

    int[] myArray = {1, 2, 3, 4, 5};
    for (int element : myArray) {
        element *= 2; // 실제 배열에는 영향을 미치지 않음
    }

     

    2. 인덱스 정보 필요 : for-each 문은 인덱스를 사용하지 않기 때문에, 배열의 인덱스 정보가 필요한 경우 사용하기 어렵습니다. 인덱스 정보가 필요한 경우 기본 for 문을 사용해야 합니다.

     

    3. 다차원 배열 순회 시 주의 : 다차원 배열에서 for-each 문을 사용할 때, 배열의 모양이 규칙적이지 않으면 오류가 발생할 수 있습니다. 예를 들어, 가변 길이의 2차원 배열을 순회할 때, 각 행의 길이가 다르면 오류가 발생할 수 있습니다. 이런 경우 기본 for 문을 사용하거나, 배열의 구조를 미리 확인하는 것이 좋습니다.

     

    4. 반복 제어 : for-each 문은 순회 중에 반복을 제어할 수 없습니다. 즉, 순회를 건너뛰거나 중단할 수 없습니다. 이러한 제어가 필요한 경우 기본 for 문을 사용해야 합니다.

     

    for-each 문을 사용할 때 이러한 주의사항을 고려하면 배열 요소에 효율적으로 접근할 수 있습니다. 배열 요소 수정, 인덱스 정보 필요, 다차원 배열 순회 시 주의, 그리고 반복 제어와 같은 상황에서는 기본 for 문을 사용하는 것이 더 적합할 수 있습니다.

     

     

     

    댓글