Coding/JAVA

[JAVA] 향상된 for문(for-each문)

민톨이 2024. 6. 23. 02:06
728x90

향상된 for문

자바에서 향상된 for문(enhanced for loop)은 배열이나 컬렉션과 같은 집합 객체를 순회(iterate)할 때 사용하는 간단하고 편리.

향상된 for문은 기본 for문의 복잡한 구문을 피하고, 코드의 가독성을 높이는 데 도움이 된다.

for (타입 변수명 : 배열 또는 컬렉션) {
    // 반복할 코드
}

 

  • 타입: 배열 또는 컬렉션의 요소 타입
  • 변수명: 각 요소를 저장할 변수 이름
  • 배열 또는 컬렉션: 순회할 배열이나 컬렉션

💻 향상된 for문 예제 

package array;

public class EnhancedFor1 {

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

        //일반 for문
        for(int i = 0; i < numbers.length; i++) {
            int number = numbers[i];
            System.out.println(number);
        }

        //향상된 for문, for-each문
        for(int number : numbers) { //배열에 있는 값을 다 돈다
            System.out.println(number);
        }
    }
}

 

일반 for문과 향상된 for문의 결과값은 같다.

그러나 일반 for문은 직접 선언하고 값을 주고 ++도 쓰고 이런 방식임에 비해 

향상된 for문은 타입 변수 : 배열의 형태로 상당히 간결하다.

향상된 for문은 배열의 인덱스를 사용하지 않고, 종료 조건을 주지 않아도 된다. 단순히 해당 배열을 처음부터 끝까지 탐색한다.

이런 방식 덕에 코드가 간결하고 가독성이 좋다.

실무에서는 향상된 for문을 많이 사용한다고 한다.

 

 

TIP ❗️

intelliJ 기준 : 향상된 for문의 단축키는 iter이다.

 

❗️향상된for문(for-each문)을 사용할 수 없는 경우

  //for-each문을 사용할 수 없는 경우
            for (int i = 0; i < numbers.length; i++){
                System.out.println("number" + i + "번의 결과는: " + numbers[i]);
            }

 

향상된 for문에는 인덱스 값이 감추어져 있다. 

int i 처럼 증가하는 인덱스 값을 직접 사용해야 하는 경우에는 사용할 수 없다.

(따지고보면 사용할 수는 있지만 이러한 경우 굳이 향상된 for문을 쓰느니 그냥 for문을 쓰는 것이 낫다.)