자바 (ref. 자바의정석)

for each 문 - JAVA

쿠쿠s 2022. 2. 7. 14:18

 

 

알고리즘을 풀거나 스프링 할때도 많이 사용되어 따로 정리를 하게 되었습니다.

for each 문이라고 흔히 부르는데 '자바의 정석'에서 향상된 for문(enhanced for statement) 이라 명칭하고,

JDK1.5 부터 배열과 컬렉션에 저장된 요 소에 접근할 때 기존의 사용하던 방법보다 편하게 처리할 수 있습니다.

 

 

 

사용방법

for( 타입 변수명 : 배열 or 컬렉션) {
	// 반복할 문장
}

 

사용 방법은 위와 같은 구조인데 글로만 적으면 어떻게 사용할지 감이 안올 수 있어 기존 for문과 비교하여 보여드리겠습니다. 

 

 

 

 

1. 일반 for문 사용 - 배열 과 ArrayList

import java.util.ArrayList;

public class forExam {

    public static void main(String[] args) {
        char[] arr = {'a', 'b', 'c', 'd', 'e'};
        ArrayList<Character> arrayList = new ArrayList<>();

        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + " ");
            arrayList.add(arr[i]);
        }

        System.out.println();

        for (int i = 0; i < arrayList.size(); i++) {
            System.out.print(arrayList.get(i) + " ");
        }
    }
}

출력 결과 : a b c d e 

              a b c d e

 

 

 

 

2. 향상된 for문 사용 - 배열과 ArrayList

import java.util.ArrayList;

public class forExam {

    public static void main(String[] args) {
        char[] arr = {'a', 'b', 'c', 'd', 'e'};
        ArrayList<Character> arrayList = new ArrayList<>();

        for (char arrTemp : arr) {
            System.out.print(arrTemp + " ");
            arrayList.add(arrTemp);
        }

        System.out.println();

        for (Character arrayListTemp : arrayList) {
            System.out.print(arrayListTemp + " ");
        }
    }
}

출력 결과 : a b c d e 

              a b c d e

 

 

 

향상된 for문이 좀더 가독성이 좋고 따로 범위도 지정을 하지 않아 간결하다는 느낌이 있다는 것을 알 수 있습니다. 배열에 있는 값을 하나 하나씩 뽑아 Temp가 값을 가진다 고 이해하시면 될 것 같습니다. 그러나 향상된 for문은 일반 for문과 달리 배열이나 컬렉션에 저장된 요소들을 읽어오는 용도로만 사용이 가능하다는 제약이 있습니다. (배열의 저장된 값 변경X)

 

 

 

 

 

[팁!] 인텔리제이 ide 를 사용한다면 iter을 사용하면 쉽게 foreach 문을 만들 수 있습니다!

'자바 (ref. 자바의정석)' 카테고리의 다른 글

클래스변수, 인스턴스변수, 지역변수 - JAVA  (0) 2022.02.09
배열의 복사 - JAVA  (0) 2022.02.08
문자열의 비교 - JAVA  (0) 2022.02.06
상수와 리터럴 - JAVA  (0) 2022.02.05
변수란? - JAVA  (0) 2022.02.04