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

초보 자바 프로그래밍(9) - 반복문 for-each

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

반복문 for-each 대표 이미지
반복문 for-each 대표 이미지

🔖 INDEX

     

     

    자바 프로그래밍에서 for-each 문법은 "향상된 for 문" 또는 "for-each 루프"라고도 불리며, 배열이나 컬렉션의 모든 요소를 순회하는 데 사용되는 간결한 반복문입니다. for-each 문법은 기존의 for 문보다 코드가 간결하고 가독성이 좋아, 일반적으로 요소를 순회하며 처리하는 작업에 사용됩니다.

     

    자바의 for-each 문법은 Java 5(Java SE 5, JDK 1.5) 버전부터 도입되었습니다. 이 버전에서는 다양한 새로운 기능과 개선 사항이 추가되었는데, 그 중 하나가 바로 for-each 루프입니다.

     

    자바의 for-each 문법은 'Iterable' 인터페이스를 구현한 객체와 배열에 사용할 수 있습니다. 주로 자바의 컬렉션 프레임워크에서 제공하는 'List', 'Set', 'Map'과 같은 컬렉션 객체에 사용되며, 배열에서도 사용할 수 있습니다.

     

    for-each 문의 문법

    for-each 문의 기본 구조는 다음과 같습니다.

    for (자료형 변수명 : 배열이름 또는 컬렉션 객체) {
        // 실행할 코드
    }
    1. 반복할 객체나 배열의 첫 번째 요소부터 시작합니다.
    2. 해당 요소를 지정한 변수에 할당합니다.
    3. 코드 블록 내의 문장을 실행합니다.
    4. 마지막 요소까지 모두 순회할 때까지 2~3번의 과정을 반복합니다.

    즉, for-each 문은 배열이나 컬렉션 객체를 통해 자동으로 인덱스를 처리하고, 요소를 순차적으로 가져와 변수에 할당합니다. 따라서 인덱스 변수를 관리하거나 요소를 직접 가져오는 코드를 작성할 필요가 없습니다.

     

     

    for-each 문의 예제 코드

    예를 들어, 다음과 같은 배열을 for-each 문을 사용하여 출력할 수 있습니다.

    int[] numbers = {1, 2, 3, 4, 5};
    
    for (int number : numbers) {
        System.out.println("number: " + number);
    }

    for-each 문은 컬렉션 객체를 사용하는 경우에도 마찬가지로 적용할 수 있습니다. 예를 들어, 다음과 같은 리스트를 for-each 문을 사용하여 출력할 수 있습니다.

    import java.util.ArrayList;
    import java.util.List;
    
    List<String> names = new ArrayList<String>();
    names.add("Alice");
    names.add("Bob");
    names.add("Charlie");
    
    for (String name : names) {
        System.out.println("name: " + name);
    }

     

    사용 시 제한 사항

    for-each 문은 몇 가지 제한 사항이 있습니다.

    1. 인덱스 값이 필요한 경우 : for-each 문은 인덱스 값을 자동으로 관리하므로, 인덱스 값을 직접 사용해야 하는 경우에는 기존의 for 문을 사용해야 합니다.
    2. 요소를 수정할 수 없음 : for-each 문에서는 순회하는 요소를 직접 수정할 수 없습니다. 요소를 변경하려면, 기존의 for 문을 사용하거나 반복자(iterator)를 사용해야 합니다.
    3. 역순 또는 사용자 지정 순서로 순회할 수 없음 : for-each 문은 항상 순차적으로 순회하므로, 역순이나 사용자 지정 순서로 순회하려면 기존의 for 문이나 다른 방법을 사용해야 합니다.

    이러한 제한 사항을 고려하여 for-each 문을 사용하면, 코드의 가독성을 높이고 효율적인 프로그래밍을 할 수 있습니다.

     

     

    다음은 for-each 문의 활용 예입니다.

    import java.util.HashMap;
    import java.util.Map;
    
    Map<String, Integer> scores = new HashMap<String, Integer>();
    scores.put("Alice", 90);
    scores.put("Bob", 85);
    scores.put("Charlie", 95);
    
    // 키(Key)만 순회
    for (String key : scores.keySet()) {
        System.out.println("Name: " + key);
    }
    
    // 값(Value)만 순회
    for (Integer value : scores.values()) {
        System.out.println("Score: " + value);
    }
    
    // 키와 값 모두 순회
    for (Map.Entry<String, Integer> entry : scores.entrySet()) {
        System.out.println("Name: " + entry.getKey() + ", Score: " + entry.getValue());
    }

    for-each 문은 자바 프로그래밍에서 자주 사용되는 구문으로, 코드를 간결하게 작성하고 가독성을 높이는 데 큰 도움을 줍니다. 그러나 일부 상황에서는 for-each 문의 제한 사항으로 인해 기존의 for 문이나 다른 방법을 사용해야 하는 경우도 있으므로, 상황에 맞게 적절한 방법을 선택하여 사용하는 것이 중요합니다.

     

     

    댓글