for each라고 부르기도 합니다.
자바에서는 배열, 컬렉션을 좀 더 쉽게 처리하기 위해서 향상된 for문
이라는 것을 제공하고 있습니다. 일반 for문에서는 카운터 변수 등을 사용해서 일일이 열거했어야 했는데요. 향상된 for문
을 사용하면 가독성을 챙기면서 좀 더 편리하게 배열, 컬렉션 요소를 처리할 수 있습니다.
향상된 for문의 구조는 다음과 같습니다.
for (타입 변수 : 배열) {
//반복 처리할 코드
}
배열에는 처리하고자하는 배열, 컬렉션을 넣고 :
왼쪽의 변수는 배열의 요소를 저장할 타입과 변수를 선언합니다.
for문을 순회하는 동안 지정된 배열에서 요소가 하나하나씩 변수에 담기게 되고, 처리를 한 뒤 다음 요소를 또 다시 변수에 담고 반복을 하는 구조로 수행됩니다.
다음은 우리가 알고 있는 for문을 사용해 배열의 모든 요소를 더하는 코드입니다.
int[] numbers = { 1, 2, 3, 4, 5 };
int result = 0;
for (int i = 0; i < numbers.length; i++) {
result += numbers[i];
}
System.out.println(result);
위 코드를 향상된 for문을 이용해서 고쳐보도록 하겠습니다.
int[] numbers = { 1, 2, 3, 4, 5 };
int result = 0;
for (int number : numbers) {
result += number;
}
System.out.println(result);
코드가 짧아졌죠? 당장은 원본 배열도, 처리할 코드도 간단한 코드라서 크게 좋아졌다라는 느낌은 들지 않을 수도 있는데요. 확실히 코드가 짧아지고 각 요소를 처리하는 방법도 number[i]
에서 number
로 더 명확해지고 간결해졌음을 볼 수 있습니다.