본문 바로가기

Java

[Java] for-each 루프

728x90

for-each란?

for-each는 JDK 1.5 버전부터 추가된 반복문으로, 배열뿐만 아니라 Collection 인터페이스를 구현한 모든 자료구조에 사용할 수 있는 반복문입니다. 배열과 리스트뿐만 아니라 Set, Map과 같은 컬렉션에서도 간단히 사용 가능합니다.

예제 코드

import java.util.ArrayList;

public class Main {
    public static void main(String[] args) {
        int[] arr = {1, 2, 3, 4, 5};

        // 일반적인 for문
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + " ");
        }

        System.out.println("\n---------------------------");

        // for-each
        for (int value : arr) {
            System.out.print(value + " ");
        }

        System.out.println("\n---------------------------");

        // 컬렉션에서의 for-each
        ArrayList<String> list = new ArrayList<>();
        list.add("apple");
        list.add("banana");
        list.add("cherry");

        for (String fruit : list) {
            System.out.print(fruit + " ");
        }
    }
}

 

위 예제에서 보듯, for-each는 첫 번째 요소부터 마지막 요소까지 순차적으로 접근합니다.

 

 

장점

코드 간결성이 좋아집니다.

  • 반복문의 조건, 증감, 배열 크기 등을 신경 쓸 필요 없이 간단히 요소를 순회할 수 있습니다.

가독성이 향상됩니다.

  • for-each는 읽기 전용 작업이나 순차적 순회에 적합하며, 가독성이 높습니다.

 

제약사항

순차 접근만 가능합니다

  • 인덱스를 명시적으로 사용할 수 없으므로, 특정 요소를 건너뛰거나 특정 인덱스만 처리하는 작업에 적합하지 않습니다.
  • 예를 들어, 짝수 번째 요소만 처리하려면 일반 for 루프를 사용해야 합니다.

요소 수정에 제약

  • index를 사용하지 않기에 배열, 컬렉션을 변경하기 어렵습니다.
  • 변경을 하고 싶다면 따로 변수를 할당하여 해당 값을 관리해주어야 하지만 그렇게 된다면 for문을 사용해야 합니다.

 

 

언제 쓰면 좋을까?

  • 목적이 명확할 때: 단순히 각 요소를 읽어 특정 작업(출력, 합산 등)을 수행할 때.
  • 읽기 작업이 주된 경우: 데이터 순회를 통해 값을 확인하거나 처리할 때.

언제 쓰면 안될까?

  • 특정 요소를 건너뛰거나 인덱스를 관리해야 할 때.
  • 요소의 값을 변경해야 할 때

 

결론

for-each는 첫 번째 요소부터 마지막 요소까지 순차적으로 접근하고, 데이터를 읽거나 사용하는 데 적합한 반복문입니다. 다만, 인덱스를 직접 관리하거나 컬렉션을 변경해야 하는 상황에서는 적합하지 않습니다.

for-each는 간결한 코드와 가독성을 제공하지만, 상황에 맞게 적절히 사용하는 것이 중요합니다.

728x90

'Java' 카테고리의 다른 글

[Java] String, StringBuffer, StringBuilder 차이점  (1) 2025.01.03
[Java] 인스턴스 내부 클래스  (0) 2024.12.05
[Java] 리스트 인터페이스 구현  (3) 2024.11.26
[Java] 1급 커넥션  (0) 2024.10.14
[Java] Arrays, Array 메소드 정리  (0) 2024.08.14