자바 foreach문 사용법



foreach(For-each)문은 for, while, do-while 반복문과 같은 배열 탐색 기법입니다.


사용방법은 다음과 같습니다.


☞ 일반적인 for 반복문과 동일하게 for 키워드를 사용합니다.

☞ 반복문 내에 카운터 변수를 선언하고 콜론(:) 다음 배열이름을 순서대로 선언합니다.

☞ 일반적으로 배열이나 Collection 클래스(ArrayList ... 등)를 반복하는 데 사용됩니다.


※ 구문(Syntax)

일반적으로 배열을 탐색할 때 다음과 같이 for 반복문을 사용합니다.

int[] arr = {0, 1, 2, 3, 4};

for (int i = 0; i < 5; i++) { 

System.out.println(arr[i]); // 0 1 2 3 4 출력

}


위 반복문을 foreach 반복문으로 다음과 같이 표현할 수 있습니다.

int[] arr = {0, 1, 2, 3, 4};


for (int i : arr) { 

System.out.println(arr[i]); // 0 1 2 3 4 출력

}


이러한 foreach 반복문을 사용함으로써 가변하는 복잡한 배열이나 리스트의 크기를 일일이 구할 필요가 없습니다. 이중 for문이나 복잡한 반복문에 적합하며, 인덱스를 생성해 접근하는 단순 for문 보다 수행속도가 조금 더 빠릅니다.

무엇보다도 코드가 짧아서 좋습니다 ㅎㅎ(가독성도 높구요)


이러한 사용하기도 편하고 성능 빵빵한 foreach문에게도 한계점이 존재하는데요...


※ foreach 문의 한계

배열 및 리스트를 탐색하는 반복문을 구현하기 편한 foreach 반복문에게도 한계가 존재합니다.


⊙ 반복문 내에서 배열이나 리스트의 값을 변경 하거나 추가할 수 없습니다.

for(int i : arr) {

arr[i] = 3; // 오류 발생!!, i가 무엇?

arr[i+1] = 4; // 오류 발생!! i가 대체 무엇???

}


⊙ 배열을 역순으로 탐색할 수 없습니다.

for(int i : arr) { // 표현 조차 불가능 ㅜㅜ

...

}


이러한 장, 단점을 가진 foreach문을 적절히 사용하여 가독성 높고 성능 좋은 프로그래밍을 하시기 바랍니다. 혹시 오타가 있는 부분이나 궁금한 점이 있는분은 댓글로 남겨주시기 바랍니다. 

공감♡ 버튼을 눌러주시면 더욱 유용하고 좋은 포스팅으로 찾아 뵙겠습니다.



to Top