for-each 문은 성가신 코드를 제거하고 반복자나 첨자 변수를 오나전히 제거해서 오류 가능성을 없앤다. 


 보기와 같이 for문 사용에 비해 for-each문을 사용하는 것이 훨씬 간결해 보이고, 첨자변수에 대해 문제를 일으킬 걱정이 없다. for-each문의 장점은 여러 컬렉션이 중첩되는 순환문을 만들어야 할 때 더 빛난다. 


for문으로 작성한 위의 코드를 for-each문을 사용하면 아래와 같이 간결해진다.


요약

for-each문은 전통적인 for문에 비해 명료하고 버그 발생 가능성도 적으며, 성능도 for문에 뒤지지 않는다. 그러니 가능하다면 항상 사용해야 한다. 그러나 아래와 같은 경우에는 for-each문을 사용할 수 없다.
  • 필터링 - 컬렉션을 순회하다가 특정한 우너소를 삭제할 필요가 있을 때
  • 변환 - 리스트나 배열을 순회하다가 그 원소 가운데 일부 또는 전체를 변경해야 할 때
  • 병렬 순회 - 여러 컬렉션을 병렬적으로 순회해야 하고, 모든 반복자나 첨자 변수가 발맞춰 나아가도록 구현해야 할 때 


+ Recent posts